好湿?好紧?好多水好爽自慰,久久久噜久噜久久综合,成人做爰A片免费看黄冈,机机对机机30分钟无遮挡

主頁 > 知識庫 > 高效的.Net UDP異步編程實現分析

高效的.Net UDP異步編程實現分析

熱門標簽:保山電話外呼管理系統怎么用 使用智能電話機器人違法嗎 朝陽市地圖標注 東莞語音電銷機器人排名 電話機器人廣告話術 外呼系統用員工身份證 淘寶地圖標注如何做 太原外呼電銷機器人費用 蘇州銷售外呼系統預算
因為要寫一個網絡程序要用到UDP協議,UDP這東西比較麻煩,又不像TCP一樣提供可靠的連接,發送接收的超時實在不好設計,最后只要用Timer來檢測有沒有想要的數據包-_#,不過這不是這次的重點,重點是怎么建立一種高效的UDP機制來實時接收服務器發送過來的數據包.

CodeProject上有個例子是開個線程去同步接收,這樣倒是可以滿足我的程序需求,不過實際中遇到幾個問題:
1.程序開銷大,內存狂飆,接一次數據就要重新開一次線程
2.由于主界面和底層是完全隔離只是通過中間的接口來通訊,導致線程總是不能正常的結束,程序結束后還有一個進程在那里不知道干什么.
于是翻閱MSDN,查找自己以前寫的代碼,最后還是決定用異步來接收,MSDN上UDP異步的例子不太好,有點敷衍的意思,用異步很好的解決了以上的問題,高效完成效率,代碼如下:
復制代碼 代碼如下:

UdpClient qq_client; //Udp客戶端
qq_client = new UdpClient();
IPEndPoint remoteQQEP = new IPEndPoint(remotehost, remoteport);
qq_client.Connect(remoteQQEP);
AsyncCallback GetRecvBuffer = new AsyncCallback(ReceiveCallback);
qq_client.BeginReceive(GetRecvBuffer, null);
這里用一個GetRecvBuffer的回掉來實現異步
private void ReceiveCallback(IAsyncResult ar)
{
try
{
lock (this)
{
byte[] recvbytes = qq_client.EndReceive(ar, ref remoteQQEP);
//QQFunction.DebugDump(recvbytes);
if (recvbytes[0] != QQDef.QQ_IM_HEAD recvbytes[0] != 0x03)
{
//非QQ數據包
return;
}
switch (Pop16(recvbytes, 3))
{
case QQDef.QQ_REQUEST_TOKEN:
DoGetToken(recvbytes);
break;
case QQDef.QQ_REQUEST_LOGIN:
DoGetLogin(recvbytes);
break;
case QQDef.QQ_GET_ONLINE_FRIEND:
DoGetOnline(recvbytes);
break;
case QQDef.QQ_KEEP_ALIVE:
CheckAlive(recvbytes);
break;
case QQDef.QQ_SEND_IM_MSG:
// Do SomeThing
break;
case QQDef.QQ_RECV_IM_MSG:
DoRecvMsg(recvbytes);
break;
default:
QQFunction.DebugDump("UnKnow Command");
QQFunction.DebugDump(recvbytes);
break;
}
}
lock (this)
{
AsyncCallback GetRecvBuffer = new AsyncCallback(ReceiveCallback);
qq_client.BeginReceive(GetRecvBuffer, null);
}
}
catch
{
}
}

代碼是不是很簡單?功能是不是很強大?
您可能感興趣的文章:
  • 深入分析C#異步編程詳解
  • .NET中的異步編程-EAP/APM使用方法及案例介紹
  • .net4.5使用async和await異步編程實例

標簽:呼倫貝爾 洛陽 潛江 克拉瑪依 綏化 運城 西藏 阿里

巨人網絡通訊聲明:本文標題《高效的.Net UDP異步編程實現分析》,本文關鍵詞  高效,的,.Net,UDP,異步,編程,;如發現本文內容存在版權問題,煩請提供相關信息告之我們,我們將及時溝通與處理。本站內容系統采集于網絡,涉及言論、版權與本站無關。
  • 相關文章
  • 下面列出與本文章《高效的.Net UDP異步編程實現分析》相關的同類信息!
  • 本頁收集關于高效的.Net UDP異步編程實現分析的相關信息資訊供網民參考!
  • 推薦文章