在上一篇中,我列了一些常用的方法,可以说这些方法是一些辅助性的方法 ,对于分析网络中的主机属性非常有用。在这篇中,我将会介绍一下面向连接( TCP)socket编程,其中辅以实例,代码可供下载。
对于TCP的Socket编 程,主要分二部分:
一、服务端Socket侦听:
服务端Socket侦听 主要分以下几个步骤,按照以下几个步骤我们可以很方便的建立起一个Socket侦 听服务,来侦听尝试连接到该服务器的客户Socket,从而建立起连接进行相关通 讯。
1、创建IPEndPoint实例,用于Socket侦听时绑定
1IPEndPoint ipep = new IPEndPoint(IPAddress.Any, 6001);
2、创建套接字实例
1//创建一个套接字
这里创建的时候用 ProtocolType.Tcp,表示建立一个面向连接(TCP)的Socket。
2 serverSocket = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);
3、将所创 建的套接字与IPEndPoint绑定
1 //将所创建的套接字与 IPEndPoint绑定
4、设置套接字为收听模式
2 serverSocket.Bind(ipep);
1//设置套接字为收听模式
2 serverSocket.Listen(10);
以上这四步,我们已经建立了 Socket的侦听模式,下面我们就来设置怎么样来获取客户Socket连接的实例,以 及连接后的信息发送。
5、在套接字上接收接入的连接
1while (true)
2 {
3 try
4 {
5 //在套接字上接收接入的连接
6 clientSocket = serverSocket.Accept();
7 clientThread = new Thread(new ThreadStart (ReceiveData));
8 clientThread.Start();
9 }
10 catch (Exception ex)
11 {
12 MessageBox.Show ("listening Error: " + ex.Message);
13 }
14 }
通过serverSocket.Accept()来接收 客户Socket的连接请求,在这里用循环可以实现该线程实时侦听,而不是只侦听 一次。当程序运行serverSocket.Accept()时,会等待,直到有客户端Socket发 起连接请求时,获取该客户Socket,如上面的clientSocket。在这里我用多线程 来实现与多个客户端Socket的连接和通信,一旦接收到一个连接后,就新建一个 线程,执行ReceiveData功能来实现信息的发送和接收。