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. *可以通过异常捕获,得到客户端的断线状态*