C#如何实现套接字发送接收数据
发表于:2025-11-15 作者:千家信息网编辑
千家信息网最后更新 2025年11月15日,这篇文章主要介绍了C#如何实现套接字发送接收数据,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。具体内容如下服务端namespace T
千家信息网最后更新 2025年11月15日C#如何实现套接字发送接收数据
这篇文章主要介绍了C#如何实现套接字发送接收数据,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。
具体内容如下
服务端
namespace TestServer{ public partial class ServerForm : Form { Socket socketSend; // 将远程连接的客户端的IP地址和socket存入集合 Dictionary dicSocket = new Dictionary(); public ServerForm() { InitializeComponent(); } private void btnStart_Click(object sender, EventArgs e) { try { // 当点击开始监听后,在服务器创建一个负责监听IP地址和端口号的socket Socket socketWatch = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp); IPAddress ip = IPAddress.Any;//;IPAddress.Parse(txtServer.Text) IPEndPoint point = new IPEndPoint(ip, Convert.ToInt32(txtPort.Text)); // 监听 socketWatch.Bind(point); ShowMsg("监听成功"); socketWatch.Listen(10); Thread th = new Thread(Listen); th.IsBackground = true; th.Start(socketWatch); } catch { } } void Listen(object o) { // 等待客户端连接 并创建一个负责通信的Socket Socket socketWatch = o as Socket; while (true) { socketSend = socketWatch.Accept(); dicSocket.Add(socketSend.RemoteEndPoint.ToString(),socketSend); cboUsers.Items.Add(socketSend.RemoteEndPoint.ToString()); ShowMsg(socketSend.RemoteEndPoint.ToString() + " : " + "连接成功"); Thread th = new Thread(Recive); th.IsBackground = true; th.Start(socketSend); } } void Recive(object o) { socketSend = o as Socket; while (true) { // 客户端连接成功后,服务器应接受客户端发来的消息 byte[] buffer = new byte[1024 * 1024 * 2]; // 实际接收到的有效字节数 int r = socketSend.Receive(buffer); if (r == 0) { break; } string str = Encoding.UTF8.GetString(buffer, 0, r); ShowMsg(socketSend.RemoteEndPoint + " : " + str); } } void ShowMsg(string str) { txtLog.AppendText(str + "\r\n"); } private void Form1_Load(object sender, EventArgs e) { Control.CheckForIllegalCrossThreadCalls = false; } private void btnSend_Click(object sender, EventArgs e) { string str = txtMsg.Text; byte[] buffer = Encoding.UTF8.GetBytes(str); string ip = cboUsers.SelectedItem.ToString(); dicSocket[ip].Send(buffer); //socketSend.Send(buffer); txtMsg.Text = ""; } private void btnSendUser_Click(object sender, EventArgs e) { string json = JsonConvert.SerializeObject(UserList()); byte[] buffer = Encoding.UTF8.GetBytes(json); socketSend.Send(buffer); } private List UserList() { List userList = new List(); User user = null; string sql = "select * from user_table"; SqlCommand cmd = SqlUtils.ConnectSql(sql); SqlDataReader sdr = cmd.ExecuteReader(); while (sdr.Read()) { user = new User(sdr.GetInt32(0), sdr.GetString(1), sdr.GetString(2), sdr.GetInt32(3)); userList.Add(user); } return userList; } }} 客户端
namespace TestClient{ public partial class ClientForm : Form { Socket socketSend; public ClientForm() { InitializeComponent(); } private void btnStart_Click(object sender, EventArgs e) { try { // 创建负责通信的socket socketSend = new Socket(AddressFamily.InterNetwork,SocketType.Stream,ProtocolType.Tcp); IPAddress ip = IPAddress.Parse(txtServer.Text); IPEndPoint point = new IPEndPoint(ip,Convert.ToInt32(txtPort.Text)); socketSend.Connect(point); ShowMsg("连接成功"); Thread th = new Thread(Recive); th.IsBackground = true; th.Start(); } catch { } } void Recive() { while (true) { // 客户端连接成功后,服务器应接受客户端发来的消息 byte[] buffer = new byte[1024 * 1024 * 2]; // 实际接收到的有效字节数 int r = socketSend.Receive(buffer); if (r == 0) { break; } string str = Encoding.UTF8.GetString(buffer, 0, r); ShowMsg(socketSend.RemoteEndPoint + " : " + str); } } void ShowMsg(string str) { txtLog.AppendText(str + "\r\n"); } private void Form1_Load(object sender, EventArgs e) { Control.CheckForIllegalCrossThreadCalls = false; } private void btnSend_Click(object sender, EventArgs e) { string str = txtMsg.Text.Trim(); byte[] buffer = Encoding.UTF8.GetBytes(str); socketSend.Send(buffer); txtMsg.Text = ""; } }}效果
发送json数据
感谢你能够认真阅读完这篇文章,希望小编分享的"C#如何实现套接字发送接收数据"这篇文章对大家有帮助,同时也希望大家多多支持,关注行业资讯频道,更多相关知识等着你来学习!
客户
客户端
成功
篇文章
服务
监听
数据
服务器
套接字
C#
有效
地址
字节
实际
消息
通信
价值
兴趣
内容
口号
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
宿州通信软件开发哪家好
幻塔的服务器有几个
服务器的板载显卡是哪种
妇联网络安全工作
山东大数据软件开发价钱
衡阳网络安全法宣传
2020国家网络安全周活动时间
管理监控的服务器
江苏省中小学网络安全课程
电子商务数据库的主要内容
证件处理软件开发 渐变蓝
买空间租服务器安全吗
河南程序软件开发定制
漯河金蝶医疗软件开发
条形码如何进入数据库
黑窗口创建数据库并初始化
邵阳软件开发培训去哪好
企才网络技术
新建数据库后怎样在里面新建表
计算机网络安全技术原理
小红蚁软件开发
如何让excel保存到数据库
vb二级数据库
cdn系统涉及哪些网络技术
mysql登录数据库方式
2016网络安全微视频展映
web服务器安全案例
网络安全等保2.0
教育软件开发需要多少钱
软件开发全过程模板