C#编写的TCP/IP通信 在计算机网络中,TCP/IP协议是最常用的协议之一,它提供了可靠的数据传输服务。C#语言可以使用TCP/IP协议来实现网络通信。在本文中,我们将介绍如何使用C#语言编写一个简单的TCP/IP通信程序。 第一部分: TCP/IP协议简介 TCP/IP协议是一种面向连接的协议,它可以保证数据的可靠传输。它由两个部分组成:TCP(Transmission Control Protocol)和IP(Internet Protocol)。TCP负责数据的传输和错误检查,而IP负责数据的路由选择。 第二部分: 客户端与服务器端的通信程序 在本文中,我们将实现一个简单的客户端与服务器端的通信程序。这个程序使用TCP/IP协议来实现数据的传输。 客户端连接服务器端代码: 在客户端,我们使用线程来发起连接请求。我们首先创建一个线程,然后启动该线程。在该线程中,我们使用TcpClient来连接服务器端。在连接成功后,我们可以使用BinaryReader和BinaryWriter来读取和写入数据。 ``` private void btnConnect_Click(object sender, EventArgs e) { // 通过一个线程发起请求,多线程 Thread connectThread = new Thread(ConnectToServer); connectThread.Start(); } private void ConnectToServer() { try { // 调用委托 statusStripInfo.Invoke(showStatusCallBack, "正在连接..."); if (tbxserverIp.Text == string.Empty || tbxPort.Text == string.Empty) { MessageBox.Show("请先输入服务器的 IP 地址和端口号"); } IPAddress ipaddress = IPAddress.Parse(tbxserverIp.Text); tcpClient = new TcpClient(); tcpClient.Connect(ipaddress, int.Parse(tbxPort.Text)); // 延时操作 Thread.Sleep(1000); if (tcpClient != null) { statusStripInfo.Invoke(showStatusCallBack, "连接成功"); networkStream = tcpClient.GetStream(); reader = new BinaryReader(networkStream); writer = new BinaryWriter(networkStream); } } catch { statusStripInfo.Invoke(showStatusCallBack,"连接失败"); Thread.Sleep(1000); statusStripInfo.Invoke(showStatusCallBack,"就绪"); } } ``` 客户端发送消息的代码: 在客户端,我们使用线程来发送消息。我们首先创建一个线程,然后启动该线程。在该线程中,我们使用BinaryWriter来写入数据。 ``` private void btnSend_Click(object sender, EventArgs e) { Thread sendThread = new Thread(SendMessage); sendThread.Start(tbxMessage.Text); } private void SendMessage(object state) { statusStripInfo.Invoke(showStatusCallBack, "正在发送..."); try { writer.Write(state.ToString()); Thread.Sleep(5000); writer.Flush(); statusStripInfo.Invoke(showStatusCallBac); } catch { statusStripInfo.Invoke(showStatusCallBack,"发送失败"); } } ``` 第三部分: 服务器端的实现 在服务器端,我们使用TcpListener来监听客户端的连接请求。我们首先创建一个TcpListener,然后使用AcceptTcpClient方法来接受客户端的连接请求。在连接成功后,我们可以使用BinaryReader和BinaryWriter来读取和写入数据。 本文介绍了如何使用C#语言编写一个简单的TCP/IP通信程序。这个程序使用TCP/IP协议来实现数据的传输,并且使用线程来实现多线程编程。
2024-11-07 11:46:45 152KB
1
通过视频讲解昆仑通态触摸屏如何设置与电脑通过网线建立TCP/IP通信
2024-07-21 12:57:45 256.9MB 昆仑通态
1
Android与C#Tcp/Ip通信,可以接收和发送16进制的数据
2023-03-16 10:30:24 95KB Android通信
1
VS 2019 MFC Socket 通讯例程服务器端Select一对多同步通信TCP/IP通信服务器/客户端例程
2022-12-29 09:19:46 237.99MB socket VS2019 mfc tcpip
1
AndroidStudio实现TCP/IP通信的例程
2022-11-27 17:19:10 16.17MB android studio tcpip
1
LabVIEW以太网TCP/IP通信(1/2)服务器端
2022-05-24 15:59:53 17KB LabVIEW TCP/IP SERVER
1
用qt编译先运行server,再运行client使其正常运行。ip地址自行改变
2022-05-19 12:10:32 9KB qt 网络编程 tcp/ip 通信
1
本文件为Android应用安装包,功能为测试基于ESP8266为服务器的通信测试,本APP作为客户端使用,https://blog.csdn.net/wwh219/article/details/108755454
2022-03-24 16:28:30 1.39MB esp8266 服务器 APP AT指令
1
实用的网络调试助手,解决tcp/ip通信难题
2022-02-22 09:03:32 468KB tcp/ip 网络 网络协议
1
3.1 控件基本方法(method) 3.1.1 S_InitListen 函数原型 :SHORT S_InitListen(SHORT m_Port) 功能 : 建立服务器端侦听端口 参数 : m_Port 服务器侦听端口号 返回值: :0:成功 1:失败 3.1.2 S_OnSendMsg 函数原型 :SHORT S_OnSendMsg(LPCTSTR m_ip, LPCTSTR m_Msg); 功能 : 单条消息发送 参数 : m_ip 接收端Ip地址 m_Msg 消息信息 返回值: :0 发送成功 1 发送失败 3.1.3 S_OnPushMsg 函数原型 :SHORT S_OnPushMsg(LPCTSTR m_Msg); 功能 : 群发消息 参数 : m_Msg 消息信息 返回值: :0 成功 1:失败 3.1.4 C_OnConnect 函数原型 :SHORT C_OnConnect(LPCTSTR m_ip, SHORT m_port); 功能 : 客户端连接服务器 参数 : m_ip 服务器端ip地址 参数 : m_port 端口号 返回值: :0 成功 1失败 3.1.5 C_OnSendMsg 函数原型 :SHORT C_OnSendMsg(LPCTSTR m_Msg); 功能 : 发送消息 参数 : m_Msg 消息信息 返回值: :0 成功 1失败 3.2 控件事件(event) 3.2.1 FireReceiveSocketMsg 原型 :void FireReceivedSocketMsg(SHORT m_Event, LPCTSTR m_Msg) 功能 :客户端消息 参数 : m_Event 事件类型 1:客户端消息事件 2:客户端通讯错误事件 参数 : m_Msg 事件信息 3.2.2 FireServerReceiveSocketMsg 原型 :void FireServerReceivedSocketMsgWinsocketocxctrl(SHORT m_Event, LPCTSTR m_Msg , LPCTSTR m_Address) 功能 :服务器端消息 参数 : m_Event 事件类型 1:服务器端消息事件 2: 服务器通讯错误事件 3:客户端连接到服务器通知事件(返回客户端ip) 4:客户端断开服务器通知事件(返回客户端ip) 参数 : m_Msg 事件信息 参数 : m_ Address 客户端ip地址 .4 备注 通讯日志存储在C:\ _SOCKET.LOG
2022-02-18 17:06:40 152KB TCP/IP Socket OCX
1