gpt4 book ai didi

c# - 停止监听套接字的正确方法

转载 作者:IT王子 更新时间:2023-10-29 04:45:14 25 4
gpt4 key购买 nike

我有一个监听套接字连接的服务器:

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
}

关闭套接字的正确(干净)方法是什么?

调用是否足够:

_serverSocket.Disconnect(true);

在 Stop() 方法中?或者是否需要进行其他工作才能彻底关闭连接?

最佳答案

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

关于c# - 停止监听套接字的正确方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/452327/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com