我是照着MSDN上的实例来学习Socket编程的,其中有一点很疑惑。
在MSDN的示例代码中,在每完成一次通信之后,他都会把连接关闭掉
Socket handler = (Socket)ar.AsyncState;
int bytesSent = handler.EndSend(ar);
handler.Shutdown(SocketShutdown.Both);
handler.Close();
我的问题:
1.这是不是必须做的?
2.我能不能不关闭Socket?让下次通信直接使用这个Socket,因为在我想象中重新建立一个连接会比使用已有的连接要慢些。
3.如果可以不关闭Socket,那么我因为怎么获取第二次的接收数据?是在接收方法那里写一个while循环吗?
4.如果必须关闭Socket,那么我用什么方法实现保持连接的功能?因为我眼中的那些网络游戏都只在登录的时候创建了一次新连接,之后一直用那个连接通信,就算你中途停顿一段时间也没关系。