c#中异步基于消息通信的完成端口的tcpip协议的组件实现(源代码)

c#中异步基于消息通信的完成端口的tcpip协议的组件实现(源代码)

ID:45754955

大小:64.74 KB

页数:29页

时间:2019-11-17

c#中异步基于消息通信的完成端口的tcpip协议的组件实现(源代码)_第1页
c#中异步基于消息通信的完成端口的tcpip协议的组件实现(源代码)_第2页
c#中异步基于消息通信的完成端口的tcpip协议的组件实现(源代码)_第3页
c#中异步基于消息通信的完成端口的tcpip协议的组件实现(源代码)_第4页
c#中异步基于消息通信的完成端口的tcpip协议的组件实现(源代码)_第5页
资源描述:

《c#中异步基于消息通信的完成端口的tcpip协议的组件实现(源代码)》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库

1、源代码:客户端:usingSystem;usingSystem.IO;usingSystem.ComponentModel;usingSystem.Collections;usingSystem.Diagnostics;usingSystem.Net;usingSystem.Net.Sockets;usingSystem.Threading;namespaceMyKJ{?///?///MyTcpIpClient提供在NetTCP_IP协议上基于消息的客户端?///?publicclassMyTcpIpClient:System.ComponentModel.Com

2、ponent?{??privateintbufferSize=2048;??privatcstringtcpIpScrvcrIP="127.0.0.1??privateinttcplpServerPort=11000;??privateSocketClientSocket=null;??privateManualResetEventconnectDone=newManualResetEvent(false);??privateManualResetEventsendDone=newManualResetEvent(false);99••??privatevoidC

3、onnectCallback(IAsyncResultar)??{???try???{????Socketclient=(Socket)ar.AsyncState;????client.EndConnect(ar);9999••••???calch(Exceptione)???{????OnErrorEvent(newErrorEventArgs(e));???}???finally???{????connectDone.Set();???}??)??privatevoidSendCallback(IAsyncResultar)??{???try???{????S

4、ocketclient=(Socket)ar.AsyncState;????intbytesSent=client.EndSend(ar);????//Console.WriteLine(bytesSent);???}???catch(Exceptione)????OnErrorEvent(newErrorEventArgs(e));???finally???{????sendDone.Set();???}??}??privatevoidReceiveCallback(lAsyncResultar)??{???Sockethandler=null;???try??

5、?{????lock(ar)9999(?????StateObjectstate=(StateObject)ar.AsyncState;?????handler=state.workSocket;??????????intbytesRead=handler.EndReceive(ar);99999?????讦(bytesRead>0)??????intReadPiont=0;???????while(ReadPiont??????{????????if(state.Cortrol==()&&ReadPiont???????{????????longbi1=stat

6、e.buffer[ReadPiont];????????bi1=(bil«24)&0xff000000;????????statc.packSizc=bi1;????????ReadPiont++;????????state.Cortrol=l;???????}?????????????if(state.Cortrol==l&&ReadPiont???????{????????longbi1=state.buffer[ReadPiont];????????bi1=(bil«16)&OxOOffOOOO;????????state.packSize=state.pa

7、ckSize+bil;????????ReadPiont++;????????state.Cortrol=2;???????}999999???????if(state.Cortrol==2&&ReadPiont???????{????????longbil=state.buffer[ReadPiont];????????bil=(bil«8)&OxOOOOffOO;????????state.packSize=state.packSize+bi1:????????ReadPiont++;????????state.Cortrol=3;???????}999999

8、9????

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。