首页 > 代码库 > c# 使用TCP连接(server)
c# 使用TCP连接(server)
效果图
代码实现
用的变量:
1 Thread threadWatch = null; //负责监听客户端的线程2 Socket socketWatch = null; //负责监听客户端的套接字3 //创建一个负责和客户端通信的套接字 4 List<Socket> socConnections = new List<Socket>();5 List<Thread> dictThread = new List<Thread>();
启动服务按钮代码如下:
1 private void btnServerConn_Click(object sender, EventArgs e) 2 { 3 //定义一个套接字用于监听客户端发来的信息 包含3个参数(IP4寻址协议,流式连接,TCP协议) 4 socketWatch = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp); 5 //服务端发送信息 需要1个IP地址和端口号 6 IPAddress ipaddress = IPAddress.Parse(txtIP.Text.Trim()); //获取文本框输入的IP地址 7 //将IP地址和端口号绑定到网络节点endpoint上 8 IPEndPoint endpoint = new IPEndPoint(ipaddress, int.Parse(txtPORT.Text.Trim())); //获取文本框上输入的端口号 9 //监听绑定的网络节点10 socketWatch.Bind(endpoint);11 //将套接字的监听队列长度限制为2012 socketWatch.Listen(20);13 //创建一个监听线程 14 threadWatch = new Thread(WatchConnecting);15 //将窗体线程设置为与后台同步16 threadWatch.IsBackground = true;17 //启动线程18 threadWatch.Start();19 //启动线程后 txtMsg文本框显示相应提示20 txtMsg.AppendText("开始监听客户端传来的信息!" + "\r\n");21 22 }
监听客户端消息代码如下:
1 /// <summary> 2 /// 监听客户端发来的请求 3 /// </summary> 4 private void WatchConnecting() 5 { 6 while (true) //持续不断监听客户端发来的请求 7 { 8 Socket socConnection = socketWatch.Accept(); 9 txtMsg.AppendText("客户端连接成功" + "\r\n");10 //创建一个通信线程 11 ParameterizedThreadStart pts = new ParameterizedThreadStart(ServerRecMsg);12 Thread thr = new Thread(pts);13 thr.IsBackground = true;14 socConnections.Add(socConnection);15 //启动线程16 thr.Start(socConnection);17 dictThread.Add(thr);18 }19 }
将消息发送到客户端
1 //发送信息到客户端 2 private void btnSendMsg_Click(object sender, EventArgs e) 3 { 4 //调用 ServerSendMsg方法 发送信息到客户端 5 ServerSendMsg(txtSendMsg.Text.Trim()); 6 } 7 8 /// <summary> 9 /// 发送信息到客户端的方法10 /// </summary>11 /// <param name="sendMsg">发送的字符串信息</param>12 private void ServerSendMsg(string sendMsg)13 {14 //将输入的字符串转换成 机器可以识别的字节数组15 byte[] arrSendMsg = Encoding.UTF8.GetBytes(sendMsg);16 //向客户端发送字节数组信息17 foreach (Socket socConnection in socConnections)18 {19 socConnection.Send(arrSendMsg);20 }21 22 //将发送的字符串信息附加到文本框txtMsg上23 txtMsg.AppendText("So-flash:" + GetCurrentTime() + "\r\n" + sendMsg + "\r\n");24 //}25 26 }
c# 使用TCP连接(server)
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。