Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/278.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 为什么客户端的连接速度如此之慢?_C#_Asynchronous_Tcpclient - Fatal编程技术网

C# 为什么客户端的连接速度如此之慢?

C# 为什么客户端的连接速度如此之慢?,c#,asynchronous,tcpclient,C#,Asynchronous,Tcpclient,我正在尝试在witch中制作一个程序,多个客户端将连接到服务器。但我有一个问题,因为当我试图同时连接多个客户端时,需要“很长时间”才能完成。 我正在使用异步方式连接: public bool connect(字符串IP,int端口) { 尝试 { if(m_clientSocket==null) {

我正在尝试在witch中制作一个程序,多个客户端将连接到服务器。但我有一个问题,因为当我试图同时连接多个客户端时,需要“很长时间”才能完成。
我正在使用异步方式连接:

public bool connect(字符串IP,int端口)
{ 
尝试
{
if(m_clientSocket==null)
{                                                                                                      
m_clientSocket=新套接字(AddressFamily.InterNetwork、SocketType.Stream、ProtocolType.Tcp);
IPAddress ip=IPAddress.Parse(ip.ToString());
int iPortNo=System.Convert.ToInt16(port.ToString());
IPEndPoint ipEnd=新的IPEndPoint(ip,iPortNo);
BeginConnect(remoteEP,新的异步回调(ConnectCallback),client);
}
}捕获()
{                                                                                                                                                                                                                                               
返回false;
}
} 
私有无效连接回调(IAsyncResult ar)
{
尝试
{
套接字客户端=(套接字)ar.AsyncState;
if(m_clientSocket!=null)
{
if(m_clientSocket.Connected)
{
客户端.EndConnect(ar);
//在这里发送下一个数据
}
其他的
{
客户端.EndConnect(ar);
m_clientSocket.Close();
m_clientSocket=null;
状态=连接错误;
}
}
}
捕获()
{   
}
}   
对于我想要连接的每个客户机,我都会打开一个新类,该类包含两个方法,您可以在上面看到。与简单for循环相比,我一个接一个地调用方法

在Wireshark中,我观察到下一步需要连接到服务器的时间是0.1s,我认为这是分配的

知道为什么要花这么长时间吗


谢谢你的帮助

你在问100ms是否太长,无法连接到服务器?如果是本地的。。对如果不是,那么100毫秒不是连接到服务器的时间,而是我的程序需要启动下一个客户端才能开始连接的时间。我不明白你为什么这样做。为什么不同时启动几个连接尝试呢?我们还希望看到服务器接受代码。