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
相关文章读者评论发表评论 |