C#基于Sockets类如何实现TCP通讯
发表于:2025-01-21 作者:千家信息网编辑
千家信息网最后更新 2025年01月21日,这篇文章主要介绍了C#基于Sockets类如何实现TCP通讯,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。具体内容如下最终效果TCPC
千家信息网最后更新 2025年01月21日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安全错误
数据库的锁怎样保障安全
斗破苍穹卡牌手游不显示服务器
电商网络安全交易
家庭服务器硬盘推荐1t
数据库约束插入字段长度
网络安全员证书拿不到
承接各种彩票软件开发定制
数据库的操作统计能力
数据库结构与原理第六章
深圳数据库建设
公司数据共享服务器
vb获取网页div数据库
数据库系统经历了
宜昌好伙伴互联网科技
数据库按时间条件删除数据
安徽web前端软件开发价钱
iphone认证数据库
国家首个以网络安全
网络安全新股高管华为
微信服务器群怎么用
网站服务器管理工具
软件开发汇报技术现状
数据库中如何用语句修改表格内容
华为软件开发工程师题目
梅州软件开发怎么选
驻马店软件开发方案
计算机网络技术谁提出来的
手机怎么远程服务器连接
中科院网络安全硕士生就业
妄想山海服务器维修多长时间
实验9数据库安全性