我是一名有用的助手,可以为您翻译以下内容。
我有一个客户端-服务器应用程序,使用UDP套接字发送数据,数据只需从客户端发送到服务器,并且服务器将始终具有相同的IP地址。唯一的要求是每秒发送约10条消息。
目前我是按照以下方式进行的:
public void SendData(byte[] packet)
{
IPEndPoint end_point = new IPEndPoint(serverIP, serverPort);
UdpClient udpChannel = new UdpClient(sourcePort);
udpChannel.Connect(end_point);
udpChannel.Send(packet, packet.Length);
udpChannel.Close();
}
我遇到的问题是当服务器未在监听时,使用“udpChannel.Close()”命令执行需要2-3秒钟。(我在这里看到了同样的问题。)
我的问题是,如果我总是向同一个IP地址和端口发送数据包,那么每次发送请求后都要连接套接字并关闭它吗?
我打算使用的代码如下:
UdpClient udpChannel;
public void SendData(byte[] packet)
{
udpChannel.Send(packet, packet.Length);
}
public void Initialize(IPAddress IP, int port)
{
IPEndPoint end_point = new IPEndPoint(serverIP, serverPort);
UdpClient udpChannel = new UdpClient(sourcePort);
udpChannel.Connect(end_point);
}
public void Exit()
{
udpChannel.Close();
}
用这种方式,发送数据前是否需要在“SendData”方法中进行一些检查?上述代码有什么问题吗?
谢谢!