国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學(xué)院 > 開發(fā)設(shè)計 > 正文

c# socket通信較完善方案

2019-11-17 03:01:54
字體:
供稿:網(wǎng)友
c# socket通信較完善方案c#的socket通信應(yīng)用.文件較多.附件為工程. core AbstractBytesWorker.cs 字節(jié)工作器(基類),用于用于同一不同功能的字節(jié)工作器 BinaryHand.cs 2進(jìn)制處理器. ThDispose.cs 處理回收相關(guān) crcentity ThPersonInfo.cs manager ThSocketManager.cs ThSocketManagerBusiness.cs 所有的業(yè)務(wù) request RequestCode.cs 請求碼 ThPRotocolReq.cs 請求邏輯 ThReqBytesWorker.cs 請求相關(guān)的字節(jié)工作器 response respLogic ThProtocolResp.cs 處理服務(wù)器響應(yīng)的數(shù)據(jù). ThProtocolRespDelegates.cs 所有的代理.用于通知客戶的事件. ThProtocolRespEvents.cs 所有的事件.用于調(diào)用客戶的. ThProtocolRespListeners.cs 所有的監(jiān)聽器,用于控制事件如何訂閱 ThProtocolRespLogic.cs 處理服務(wù)器的數(shù)據(jù) ThRespBytesWorker.cs 響應(yīng)字節(jié)處理器 BinaryMessageHandler.cs 處理數(shù)據(jù)包粘結(jié),包一次數(shù)據(jù)不足等情況. ResponseCode.cs 響應(yīng)碼 socket TAsyncTcpClient.cs tcpClient類,read異步. testcase =============================================================== 部分類代碼: BinaryMessageHandlerC#代碼收藏代碼
  1. #pragmawarningdisable0219
  2. usingSystem;
  3. usingSystem.Collections.Generic;
  4. usingSystem.Linq;
  5. usingSystem.Text;
  6. usingSystem.IO;
  7. ///<summary>
  8. ///字節(jié)接收處理,粘包問題
  9. ///</summary>
  10. classBinaryMessageHandler:ThDispose
  11. {
  12. List<byte>bytesList=newList<byte>();
  13. privateTAsyncTcpClienttcpClient;
  14. publicBinaryMessageHandler(TAsyncTcpClienttcpClient)
  15. {
  16. this.tcpClient=tcpClient;
  17. }
  18. publicBinaryMessageHandler()
  19. {
  20. }
  21. overridepublicvoidSelfDispose()
  22. {
  23. tcpClient=null;
  24. bytesList=null;
  25. }
  26. ///<summary>
  27. ///累積字節(jié).
  28. ///每次累積后,測試是否有完整的包.
  29. ///</summary>
  30. ///<paramname="buf"></param>
  31. publicvoidWrite(byte[]buf)
  32. {
  33. if(buf.Length>0)
  34. {
  35. //累積字節(jié)
  36. bytesList.AddRange(buf);
  37. byte[]bytes=bytesList.ToArray<byte>();
  38. MemoryStreamms=newMemoryStream(bytes);
  39. BinaryReaderreader=newBinaryReader(ms);
  40. intheader=reader.ReadUInt16();
  41. if(header==ThSocketManager.TH_HEADER)
  42. {
  43. intlen=reader.ReadUInt16();
  44. intremainLen=len-4;
  45. if((ms.Length-ms.Position)>=remainLen)
  46. {
  47. //有完整的數(shù)據(jù)包
  48. ms.Position=0;
  49. byte[]pack=reader.ReadBytes(len);
  50. ReadPackage(pack);
  51. //移除讀完的數(shù)據(jù)包
  52. bytesList.RemoveRange(0,len);
  53. }
  54. }
  55. reader.Close();
  56. ms.Close();
  57. }
  58. }
  59. ///<summary>
  60. ///讀取服務(wù)端響應(yīng)信息.
  61. ///</summary>
  62. ///<paramname="bytes"><
發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
主站蜘蛛池模板: 高邮市| 昌黎县| 武鸣县| 类乌齐县| 肥乡县| 鸡西市| 金川县| 荆门市| 南江县| 阜平县| 周口市| 天峨县| 绥德县| 沧源| 越西县| 泸定县| 洛川县| 同德县| 资阳市| 凤台县| 大余县| 淮安市| 芜湖县| 淮南市| 盐山县| 柳林县| 辽阳县| 建阳市| 竹溪县| 临江市| 西乌| 平乐县| 温宿县| 平谷区| 辛集市| 大理市| 娄烦县| 岑溪市| 朝阳区| 宜章县| 万载县|