代码地址:http://www.cnblogs.com/linzheng/archive/2011/06/21/2086456.html
做了2个Winform版的也同样是这个问题,求解。。
e.LastOperation里面的问题
应该属于粘包问题
//检查Socket的当前最后的一个操作 switch (e.LastOperation) { //如果最后的一个操作是连接,那么下一步的处理就是发送消息。 case SocketAsyncOperation.Connect: //if (e.UserToken != null) //{ // //获取运行中的Socket对象 // Socket sock = e.UserToken as Socket; // ////开始发送 // //bool completesAsynchronously = sock.SendAsync(e); // //检查socket发送是否被挂起,如果被挂起将继续进行处理 // if (!completesAsynchronously) // { // socketEventArg_Completed(e.UserToken, e); // } //} break; //如果最后的一个一个操作是接收,那么显示接收到的消息内容,并清理资源。
这里的问题