急,updclient客户端/服务器通讯的性能问题,请各位专家帮忙
最近由于项目的原因,用udpclient开发了个客户端/服务器端通讯工具(类似qq)
现在碰到了性能问题,客户端少的时候登陆很快,消息转发也很快.当客户端人数达到80人左右时,登陆服务器的响应就会特别慢!有时候压根就不反映.(截了包看了一下,客户端发过去了,是服务器的响应变得很慢,有时候就没响应,感觉处理不过来了....)
服务器端做的事情就是轮询客户端的状态,转发不在一个网段的客户端的消息.
发送和接收方式都采用的异步非阻塞方式很简单.代码如下.请做通讯方面的高手指教,还需要做什么样的处理?
或者谁有可行的客户端/服务器端通讯部分的代码.
先上100分,问题解决后再开100分送上!请通讯方面的高手帮忙看下!是不是每次通讯后需要关闭udpclient释放连接,还是说?
public void Send(IPAddress Host, int Port, byte[] Data)
{
try
{
IPEndPoint endPoint = new IPEndPoint(Host, Port);
this.UDP_Server.BeginSend(Data, Data.Length,endPoint, new AsyncCallback(SendCallback), null);
}
catch (Exception exception)
{
}
}
private void SendCallback(IAsyncResult ar)
{
try
{
int bytesSent = this.UDP_Server.EndSend(ar);
}
catch (Exception e)
{
}
}
//异步接收
private void GetUDPData()
{
try
{
AsyncCallback GetRecvBuffer = new AsyncCallback(ReceiveCallback);
this.UDP_Server.BeginReceive(GetRecvBuffer, null);
}
catch (Exception exception)
{
}
}
private void ReceiveCallback(IAsyncResult ar)
{
try
{
IPEndPoint endpoint = null;
byte[] data = this.UDP_Server.EndReceive(ar, ref endpoint);
-----转到操作
}
catch (Exception exception)
{
}
finally
{
GetUDPData();
}
}