《C# Socket异步通讯实现详解》.doc

  1. 1、本文档共5页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
《C# Socket异步通讯实现详解》.doc

using System; using System.Net; using System.Net.Sockets; using System.Threading; using System.Text; // State object for receiving data from remote device. public class StateObject { // Client socket. public Socket workSocket = null; // Size of receive buffer. public const int BufferSize = 256; // Receive buffer. public byte[] buffer = new byte[BufferSize]; // Received data string. public StringBuilder sb = new StringBuilder(); } public class AsynchronousClient { // The port number for the remote device. private const int port = 11000; // ManualResetEvent instances signal completion. private static ManualResetEvent connectDone = new ManualResetEvent(false); private static ManualResetEvent sendDone = new ManualResetEvent(false); private static ManualResetEvent receiveDone = new ManualResetEvent(false); // The response from the remote device. private static String response = String.Empty; private static void StartClient() { // Connect to a remote device. ? try {// Establish the remote endpoint for the socket. // The name of the // remote device is . IPHostEntry ipHostInfo = Dns.Resolve(); IPAddress ipAddress = ipHostInfo.AddressList[0]; IPEndPoint remoteEP = new IPEndPoint(ipAddress, port);? //?生成一个TCP/IP?socket. ? Socket?client?=?new?Socket(AddressFamily.InterNetwork, ? SocketType.Stream,?ProtocolType.Tcp); ? ? //?与目标终端连接. ? client.BeginConnect(remoteEP, ? new?AsyncCallback(ConnectCallback),?client); ? //等待,直到连接程序完成。在ConnectCallback中适当位置有connecDone.Set()语句 ? connectDone.WaitOne(); ? ? //?发送数据到远程终端. ? Send(client,?This?is?a?testEOF); ? sendDone.WaitOne(); ? ? //?接收返回数据. ? Receive(client); ? receiveDone.WaitOne(); ? ? //?Write?the?response?to?the?console. ? Console.WriteLine(Response?received?:?{0},?response); ? ? //?Release?the?socket. ? client.Shutdown(SocketShutdown.Both); ? client.Close(); ? return?0; ? }? C# Socket异步通讯客户端之连接部分Callback: private?static?void?ConnectCallback(IAsyncResult?ar) ? { ? ? //?从state对象获取socket. ? Socket?client?=?(Socket)ar.AsyncState; ? ? /

文档评论(0)

wgvi + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档