现有连接的请求就会创建一个线程专门来处理这个连接,创建线程时需要传递处理连接的过程或函数的地址以被线程调用。
服务程序通过已连接的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()
编译桌面服务端程序运行效果如下图所示:

当服务程序处理完一个连接后就向相应的PPC客户端返回一条成功信息,如下图所示:

至此,PPC客户端程序和桌面服务端程序编写完毕,该系统在安装WindowsXP SP2的桌面电脑和Dell X3i 的PPC上测试通过。
四、结论
服务程序通过已连接的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()
编译桌面服务端程序运行效果如下图所示:

当服务程序处理完一个连接后就向相应的PPC客户端返回一条成功信息,如下图所示:

至此,PPC客户端程序和桌面服务端程序编写完毕,该系统在安装WindowsXP SP2的桌面电脑和Dell X3i 的PPC上测试通过。
四、结论
| 对此文章发表了评论 |

