C# socket编程实现信息的接收(winform)
点我下载项目资源
服务器端:
第一步:建立一个用于通信的Socket对象
第二步:使用bind绑定IP地址和端口号
第三步:使用listen监听客户端
第四步:使用accept中断程序直到连接上客户端
第五步:接收来自客户端的请求
第六步:返回客户端需要的数据
第七步:如果接收到客户端已关闭连接信息就关闭服务器端
客户端:
第一步:建立一个用于通信的Socket对象
第二步:根据指定的IP和端口connet服务器
第三步:连接成功后向服务器端发送数据请求
第四步:接收服务器返回的请求数据 第五步:如果还需要请求数据继续发送请求
第六步:如果不需要请求数据就关闭客户端并给服务器发送关闭连接信息
程序如下所示:
服务端连接关键代码
#region 连接服务器端
private void button_Connect_Click(object sender, EventArgs e)
{
ClientSocket = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp); //声明负责通信的套接字
richTextBox_Receive.Text += "正在连接...\n";
IPAddress IP = IPAddress.Parse(textBox_Addr.Text); //获取设置的IP地址
int Port = int.Parse(textBox_Port.Text); //获取设置的端口号
IPEndPoint iPEndPoint = new IPEndPoint(IP, Port); //指定的端口号和服务器的ip建立一个IPEndPoint对象
try
{
ClientSocket.Connect(iPEndPoint); //用socket对象的Connect()方法以上面建立的IPEndPoint对象做为参数,向服务器发出连接请求
SFlag = 1; //若连接成功将标志设置为1
richTextBox_Receive.Text += DateTime.Now.ToString("yy-MM-dd hh:mm:ss ") + textBox_Addr.Text + "连接成功" + "\n";
button_Connect.Enabled = false; //禁止操作连接按钮
//开启一个线程接收数据
th1 = new Thread(Receive);
th1.IsBackground = true;
th1.Start(ClientSocket);
}
catch
{
MessageBox.Show("服务器未打开");
}
}
#endregion
点我下载项目资源