Socket服务端常用方法,不积硅步无以至千里

1. 创建服务端Socket对象:Socket serverSocket=new Socket(AddressFamily.InterNetwork,SocketType.Stream,ProtocolType.Tcp);

2. 创建客户端Socket对象Socket clientSocket=null;

3. 配置服务端Socket:

      创建表示ip的字节数组:byte[] ip=new byte[]{127,0,0,1}

      创建IPAddress对象:IPAddress iPAddress=new IPAddress(ip);

      创建IPEndPoint对象:IPEndPoint iPEndPoint=new IPEndPoint(ip,端口号);

      服务端绑定IPEndPoint对象:serverSocket.Bind(iPEndPoint);

      服务端开始监听:serverSocket.Listen(监听队列的长度);

      创建单独的线程运行接收连接的方法:Thread thread=new Thread(接收连接的方法);

      开启线程:thread.Start();

4. 创建接收连接的方法:

      将接收到的连接保存:this.clientSocket=serverSocket.Accept();

      创建单独的线程,执行数据交互的方法:Thread thread=new Thread(数据交互的方法);

      开启线程:thread.Start();

5. 创建数据交互的方法:

       创建连接状态标志:bool connectFlag=true;

       将4中监听到的客户端Socket保存到局部变量中:Socket clientSocket=this.clientSocket;

       开始循环进行数据交互:

              创建接收数据字节数组数据块:byte[] receiveBuffer=new byte[最大一次接收的字节数];

              创建用来保存实际接收字节数的变量:int receiveNum=-1;

               读取数据:num=clientSocket.Receive(receiveBuffer);

               判断读取到的字节数是否为0,如果为0,则对等连接已断开

               销毁引用:clientSocket.Dispose();

               连接标志置位false:connectFlag=false;

               退出循环:break;

               创建发送数据字节数组数据块:byte[] sendBuffer=new byte[]{待发送数据};

               创建用来保存实际发送字节数的变量:int sendNum=-1;

               发送数据:sendNum=clientSocket.Send(sendBuffer);

6. *可以通过异常捕获,得到客户端的断线状态*


版权声明:本文为csklss原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。