我有一个侦听套接字连接的服务器:
public class Server
{
private Socket _serverSocket;
public Server()
{
_serverSocket = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);
_serverSocket.Bind(new IPEndPoint(IPAddress.Any, 1234));
_serverSocket.Listen(1);
}
public void Start()
{
_serverSocket.BeginAccept(HandleAsyncConnectionMethod, null);
}
public void Stop()
{
//????? MAGIC ?????
}
//... rest of code here
}
Run Code Online (Sandbox Code Playgroud)
关闭插座的正确(干净)方法是什么?
打电话是否足够:
_serverSocket.Disconnect(true);
Run Code Online (Sandbox Code Playgroud)
在Stop()方法?或者还有其他工作需要干净地关闭连接吗?
小智 4
TCP 连接终止正确涉及四次握手。您希望两端通知对方他们正在关闭,然后确认对方已关闭。
维基百科解释了该过程:http://en.wikipedia.org/wiki/Transmission_Control_Protocol#Connection_termination
这篇文章解释了如何在 C# 中实现它:http://vadmyst.blogspot.com/2008/04/proper-way-to-close-tcp-socket.html
归档时间: |
|
查看次数: |
33323 次 |
最近记录: |