专注于互联网--专注于架构

最新标签
网站地图
文章索引
Rss订阅

首页 »DotNet » socket同步异步:异步Socket »正文

socket同步异步:异步Socket

来源: 发布时间:星期五, 2009年1月9日 浏览:120次 评论:0
  在网络通讯编程中我们经常使用到Socket, 这种情况下我们往往需要长期监听某个端口, 以获得相应Socket, 然后再利用它进行相关操作. 但是这样话, 主线程就会被阻塞.无法对其他时间做出相应. 其实在.NetSocket类中提供了对异步操作支持. 下面将介绍其基本原理, 以及利用它做个P2P实现.

  背景知识:

  你需要了解有关Socket基本知识, 以及Delegate异步操作.

  在这个例子中, 我们实现了个利用非阻塞(non-blocking)Socket进行局域网通讯P2P应用. 每个客户拥有个Grid(类似于个 2维), 当它启动Grid设置服务时候,旦别客户和它相连就可以查询并修改某个网格中数值.(比如查询 grid[1][2]值).

  运行步骤:

  1.    启动服务 在某个客户端输入 start 400 (400是端口号, 你可以任意指定)

  2.    连接其他Peer 在另个客户端中输入 connect 202.119.9.12 400 (202.119.9.12 400是某个开启服务客户端IP地址)

  3.    输入 get 1 1 表示你想获得grid[1][1]这个网格中数值. 默认情况下得到0

  4.    输入 1 1 5 表示你想设置grid[1][1]这个网格中数值为5 .

  5.    再次输入 get 1 1 查询到结果为已修改5

  6.   输入shutdown 关闭和刚才和当前Peer连接. 你可以再次连接别Peer

  运行示意图.

  

  配合附带源代码, 相信可以让你对此过程有更加深入了解.

  至于本文有关P2P举例, 其实还很不完善. 只是为每个Peer同时提供了充当服务器和客户端功能. 当然在这个基础上你可以很方便做出你想要效果.



0

相关文章

读者评论

发表评论

  • 昵称:
  • 内容: