C#基于Sockets类如何实现TCP通讯
发表于:2025-11-17 作者:千家信息网编辑
千家信息网最后更新 2025年11月17日,这篇文章主要介绍了C#基于Sockets类如何实现TCP通讯,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。具体内容如下最终效果TCPC
千家信息网最后更新 2025年11月17日C#基于Sockets类如何实现TCP通讯
这篇文章主要介绍了C#基于Sockets类如何实现TCP通讯,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。
具体内容如下
最终效果

TCPClient
using System;using System.Collections.Generic;using System.ComponentModel;using System.Data;using System.Drawing;using System.Linq;using System.Text;using System.Threading.Tasks;using System.Windows.Forms;using System.Net;using System.Net.Sockets;using System.Threading;namespace TCPClient02{ public partial class Form1 : Form { public Form1() { InitializeComponent(); } Socket socketSend; private void button1_Click(object sender, EventArgs e) { //Create socket socketSend = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp); IPAddress ip = IPAddress.Parse(textBox1.Text); IPEndPoint point = new IPEndPoint(ip, Convert.ToInt32(textBox2.Text)); IDInfo idinfo = new IDInfo(); //Read ID number information //Get the IP address and port number of the remote server socketSend.Connect(point); ShowMessages("Connection succeeded"); //Start a new thread and keep receiving messages sent by the server Thread th = new Thread(ReciveMessages); th.IsBackground = true; th.Start(); } private void button2_Click(object sender, EventArgs e) { string str = textBox3.Text.Trim(); byte[] buffer = System.Text.Encoding.UTF8.GetBytes(str); socketSend.Send(buffer); } void ShowMessages(string str) { textBox4.AppendText(str + "\r\n"); } void ReciveMessages() { while (true) { byte[] buffer = new byte[1024 * 1024 * 3]; int r = socketSend.Receive(buffer); if (r == 0) { break; } string s = Encoding.UTF8.GetString(buffer, 0, r); ShowMessages(socketSend.RemoteEndPoint + ":" + s); } } private void Form1_Load(object sender, EventArgs e) { Control.CheckForIllegalCrossThreadCalls = false; } }}TCPserver
using System;using System.Collections.Generic;using System.ComponentModel;using System.Data;using System.Drawing;using System.Linq;using System.Text;using System.Threading.Tasks;using System.Windows.Forms;using System.Net.Sockets;using System.Net;using System.Threading;namespace TCPserver{ public partial class Form1 : Form { public Form1() { InitializeComponent(); } private void button1_Click(object sender, EventArgs e) { try { //创建一个负责监听的Socket Socket socketWatch = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp); //创建ip地址和端口号 //IPAddress ip = IPAddress.Parse(textBox1.Text); IPAddress ip = IPAddress.Any; IPEndPoint point = new IPEndPoint(ip, Convert.ToInt32(textBox2.Text)); //让负责监听的socket绑定ip地址和端口号 socketWatch.Bind(point); ShowMsg("监听成功"); //设置监听队列(某一时刻连接客户端的最大数目) socketWatch.Listen(10); //线程执行的方法 Thread th = new Thread(Listen); //服务器开始监听 th.IsBackground = true; th.Start(socketWatch); } catch { } } void ShowMsg(string str) { textBox3.AppendText(str + "\r\n"); } /// /// 等待客户端的连接 并且创建与之通信的Socket /// /// Socket socketSend; void Listen(object o) { Socket socketWatch = o as Socket; //负责监听的socket 来接收客户端的连接 //创建跟客户端通信的socket while (true) { try { socketSend = socketWatch.Accept(); ShowMsg(socketSend.RemoteEndPoint.ToString() + "连接成功"); //开始一个新的线程不断接受客户端发送过来的消息 Thread th = new Thread(Recive); th.IsBackground = true; th.Start(socketSend); } catch { } } } /// /// 服务器不断接受客户端发送过来的消息 /// /// void Recive(object o) { Socket socketSend = o as Socket; while (true) { try { //客户端连接成功后,服务器应该接收客户端发来的消息 byte[] buffer = new byte[1024 * 1024 * 2]; //实际接收到的有效字节数 int bytelen = socketSend.Receive(buffer); if (bytelen == 0) { break; } string str = Encoding.UTF8.GetString(buffer, 0, bytelen); ShowMsg(socketSend.RemoteEndPoint + ":" + str); } catch { } } } private void textBox1_TextChanged(object sender, EventArgs e) { } private void Form1_Load(object sender, EventArgs e) { Control.CheckForIllegalCrossThreadCalls = false; } /// /// 服务器给客户端发送消息 /// /// /// private void button3_Click(object sender, EventArgs e) { string str = textBox4.Text; byte[] buffer = System.Text.Encoding.UTF8.GetBytes(str); socketSend.Send(buffer); } }}感谢你能够认真阅读完这篇文章,希望小编分享的"C#基于Sockets类如何实现TCP通讯"这篇文章对大家有帮助,同时也希望大家多多支持,关注行业资讯频道,更多相关知识等着你来学习!
客户
客户端
监听
服务器
消息
篇文章
服务
成功
端的
通讯
C#
不断
口号
地址
线程
通信
最大
有效
价值
兴趣
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
江苏的网络安全公司
可编程串口服务器
服务器管理员与管理员区别
加盟商城软件开发
邯郸定制软件开发公司哪家好
智能鸡舍环控系统软件开发
傲梅分区助手服务器版
访问ftp服务器文件夹
软件开发需要什么电脑软件
国产服务器芯片
手机网络安全教育视频
中证登软件开发
深圳网络安全执法
历史学使用数据库
电脑版空岛拔刀剑服务器
汽车用什么软件开发
软件开发驻场人员协议模板
数据库可否为空用代码表示
软件开发管理制度模板
学校网络安全服务平台
江苏运营软件开发价格表格
河南 郑州河马网络技术
工业软件开发小说
微信删除产品id数据库没有删除
船舶网络安全法规
修改数据库字符集和排序规则
下载软件显示无法连接数据库
数据库服务器与虚拟机
迪拜php软件开发招聘
安卓远程软件开发