随笔分类 - Socket
摘要:上一篇中,我们已经学会了服务器的代码,至此我们的SOcket的TCP通讯连接已经完成。这一篇我们总结一下。服务器开启后,开始异步监听客户端连接。客户端连接时,实例化TCPListenerClient,并开始异步监听数据。接收到数据时,判断数据长度,0则为断开连接,不为0则引发接收数据完成事件。可以通过TCPListenerClient发送数据或断开连接。服务器关闭时要先断开所有客户端连接。客户端连接服务器,开始异步接收服务器数据。接收到数据时,判断数据长度,0则为断开连接,不为0则引发接收数据完成事件。客户端连接服务器后,可以发送数据与断开连接。SocketHandler是专门处理接收发送的对
阅读全文
摘要:上一篇中,我们编写了SocketHandler处理Socket的IO。 现在我们只剩下服务器端了。 服务器端包含两个类,一个TCPListener,一个TCPListenerClient。 TCPListener只管Start与Stop还有Accept。 TCPListenerClient是连接到服
阅读全文
摘要:上一篇中,我们编写了客户端功能。 这一篇将讲解ISocketHandler的实现。 再来回顾一下ISocketHandler接口。 做一个类SocketHandler继承ISocketHandler接口 增加两个属性与构造函数。 StateSet可以保存我们的异步调用结果等数据 SendQueue用
阅读全文
摘要:本文章将讲解基于TCP连接的Socket通讯,使用Socket异步功能,并且无粘包现象,通过事件驱动使用。在编写Socket代码之前,我们得要定义一下Socket的基本功能。作为一个TCP连接,不论是客户端还是服务器端,它都得有以下接口:public interface ISocket{ /// <summary> /// 获取是否已连接。 /// </summary> bool IsConnected { get; } /// <summary> /// 发送数据。 /// </summary> /// <param name="
阅读全文