这几天单位有个小工具要做,用到来了socket,看了一阵。总觉得还是很模糊。不过,还得继续下去,下面稍微谈一下自己的一些理解吧。
1.sokcet同步和异步
同步:作为一个客户端socket,在操作时,将进入阻塞状态,这时的线程是挂起的,直到操作完毕后,才能往下继续运行。
异步:在操作时,不必等待操作的结果,程序原来干嘛就可以去干吗。而进程将指派一个指定的线程去监视这一操作,直到处理完毕后。
2.socket建立过程
同步-
server端:(1)建立socket client端:(1)建立socket
(2)绑定端口
(3)监听
(4)accept 直到 ------------------------(2)connect连接
【send 、receive数据】
异步-
service端:(1)建立socket client端口:(1)建立socket
(2)绑定
(3)监听
(4)开始连接[beginAccept] -------- (2)开始连接[beginConnect]
【 beginSend beginReceivce 】
3.C# 异步sokcet
建立socket:
IPHostEntry ipHostInfo = Dns.Resolve(Dns.GetHostName());
IPAddress ipAddress = ipHostInfo.AddressList[0];
IPEndPoint remoteEP = new IPEndPoint(ipAddress, 11000);
Socket listener = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);
beginConnect - endConnect 连接 - 线程等待连接结束
beginSend - endSend 发送 - 线程等待发送完毕
beginReceive-endReceive 接收 - 线程等待接收完毕