您现在的位置: 无忧电子商务网 >> 信息学院 >> 程序开发 >> asp.net >> 正文

VB.NET实现PC与掌上电脑PPC的双向通信

作者:佚名    信息学院来源:整理    点击数:    更新时间:2008-1-30 我要参与讨论

  现有连接的请求就会创建一个线程专门来处理这个连接,创建线程时需要传递处理连接的过程或函数的地址以被线程调用。

  服务程序通过已连接的Socket获取数据,接收到的数据按相应的编码规则进行解码并将信息添加到列表框中:

……

CurThread = System.Threading.Thread.CurrentThread()

‘接受挂起的连接请求并返回可用来发送和接收数据的Socket

CurSocket = Listener.AcceptSocket

While Listening
 If CurSocket.Available > 0 Then
  ‘接收来自绑定的Socket的数据
  Bytes = CurSocket.Receive(Buffer, Buffer.Length, 0)
  ‘将接收到的数据转化成相应编码的字符串
  ReceivedData= Encoding.UTF8.GetString(Buffer)
  SyncLock CurThread
  lbReceived.Items.Add(ReceivedData)
End SyncLock
……
  TCPListener.AcceptSocket接受挂起的连接请求,并且返回用于发送和接收数据的 Socket,此 Socket 继续用于和新连接上的客户端通信。

  SyncLock 语句确保多个线程不会同时执行向列表框添加数据的操作。当线程到达 SyncLock 块时,将计算表达式并保持此互斥性,直到在表达式返回的对象上有锁为止。这防止了表达式在多个线程运行期间更改值,从而避免代码产生意外的结果。

  向客户端返回服务端处理后的消息,代码片段如下:

'格式化返回消息 - 这是服务器端处理后的结果并返回到客户端。

BacktoClientData = System.DateTime.Now ‘向客户端传递服务端程序处理时的时间
Buffer = Encoding.UTF8.GetBytes(BacktoClientData.ToCharArray)

'通过打开的套接字将结果发送回客户端应用程序,然后关闭该套接字。

CurSocket.Send(Buffer, Buffer.Length, 0)
CurSocket.Close()
  编译桌面服务端程序运行效果如下图所示:

VB.NET实现PC与掌上电脑PPC的双向通信(图二)
  当服务程序处理完一个连接后就向相应的PPC客户端返回一条成功信息,如下图所示:

VB.NET实现PC与掌上电脑PPC的双向通信(图三)
  至此,PPC客户端程序和桌面服务端程序编写完毕,该系统在安装WindowsXP SP2的桌面电脑和Dell X3i 的PPC上测试通过。

  四、结论

上一页  [1] [2] [3] [4] [5] [6] 下一页

在google里搜索更多VB.NET实现PC与掌上电脑PPC的双向通信

Google
Web www.51ec.org
  • 上一篇信息学院:

  • 下一篇信息学院:
  • 【字体: 】【发表评论】【加入收藏】【告诉好友】【打印此文】【关闭窗口
    我来说两句 对此文章发表了评论
      昵 称: *必填    ·注册用户·
      评 分: 1分 2分 3分 4分 5分     严禁发表危害国家安全、政治、黄色淫秽等内容的评论,用户需对自己在使用本网站服务过程中的行为承担法律责任。本站管理员有权保留或删除评论内容,评论内容只代表机友个人观点,与本网站立场无关。  
    评 论
    内 容

     
    评论列表 (最新 评论仅限网友观点!)

    供求信息




    | 设为首页 | 加入收藏 | 关于我们 | 广告服务 | 联系方式 | 友情链接 | 版权申明