TCP通信需要通信双方都在线,所以需要先启动服务端进行监听,客户端才能获得连接,服务端代码:
static void Main(string[] args)
{
TcpClient client = null;
NetworkStream stream = null;
byte[] buffer = null;
string receiveString = null;
IPAddress localIP = IPAddress.Parse("127.0.0.1");
int localPort = 11000;
TcpListener listener = new TcpListener(localIP, localPort);//用本地IP和端口实例化Listener
listener.Start();//开始监听
while (true)
{
client = listener.AcceptTcpClient();//接受一个Client
buffer = new byte[client.ReceiveBufferSize];
stream = client.GetStream();//获取网络流
stream.Read(buffer, 0, buffer.Length);//读取网络流中的数据
stream.Close();//关闭流
client.Close();//关闭Client
receiveString = Encoding.Default.GetString(buffer).Trim('\0');//转换成字符串
Console.WriteLine(receiveString);
}
}
只有服务端开启监听后,客户端才能正确连接,所以服务端要一直开启监听,客户端每次发送数据,都要首先与服务端建立连接,连接建立完成后才进行数据发送。客户端代码:
static void Main(string[] args)
{
string sendString = null;//要发送的字符串
byte[] sendData = null;//要发送的字节数组
TcpClient client = null;//TcpClient实例
NetworkStream stream = null;//网络流
IPAddress remoteIP = IPAddress.Parse("127.0.0.1");//远程主机IP
int remotePort = 11000;//远程主机端口
while (true)//死循环
{
sendString = Console.ReadLine();//获取要发送的字符串
sendData = Encoding.Default.GetBytes(sendString);//获取要发送的字节数组
client = new TcpClient();//实例化TcpClient
try
{
client.Connect(remoteIP, remotePort);//连接远程主机
}
catch (System.Exception ex)
{
Console.WriteLine("连接超时,服务器没有响应!");//连接失败
Console.ReadKey();
return;
}
stream = client.GetStream();//获取网络流
stream.Write(sendData, 0, sendData.Length);//将数据写入网络流
stream.Close();//关闭网络流
client.Close();//关闭客户端
}
}
- 大小: 16.2 KB
分享到:
相关推荐
在C#中实现TCP通信,主要涉及到System.Net和System.Net.Sockets命名空间中的类。首先,我们需要创建一个TcpClient对象,用于客户端连接,或者创建一个TcpListener对象,用于服务器端监听连接请求。接下来,我们详细...
通过此项目,开发者可以深入理解TCP和UDP的区别,掌握如何在C#环境中使用Socket进行网络通信,并了解如何在WinForm应用中实现数据的定时发送和接收。同时,该项目还涉及字符编码处理,增加了实际应用中的复杂性,有...
总的来说,TcpListener和TcpClient是C#中实现TCP通信的基础工具,它们使得开发者能够轻松地构建可靠的、面向连接的网络服务。理解并掌握这两类的使用方法对于开发网络应用至关重要。通过深入研究提供的源码,可以...
在C#中,我们通常使用System.Net命名空间下的Socket类来处理TCP/IP通信。 首先,让我们来看看服务端的实现。服务端需要监听特定的端口,等待客户端的连接请求。在C#中,可以创建一个Socket实例,并调用Bind方法绑定...
本篇文章将深入探讨C#中的TCP网络编程,以"TCP通信实例"为主要内容,结合提供的压缩包文件"BenXHSocket",我们将学习如何创建和使用TCP客户端和服务器,以及理解TCP通信的基本原理和关键概念。 TCP是一种面向连接的...
在TCP通信中,数据通常以字节流的形式传输,因此可能需要进行编码和解码。例如,字符串可以使用Encoding类转换为字节数组,再通过NetworkStream发送;接收的数据也需要反向转换。 文件"C#网络通信之TCP连接.txt...
本文将详细讲解如何使用C#通过TCP/IP协议与ModBus设备进行通讯,以及C#实现TCP通信的基本步骤。 首先,我们要了解什么是ModBus。ModBus是一种通用的串行通信协议,最初由Modicon公司开发,现在已经成为工业自动化...
本文将深入探讨如何使用C#语言来实现TCP通信,包括TCP服务器和客户端的创建,以及相关的编程技巧。 TCP是一种面向连接的、可靠的、基于字节流的传输层通信协议,它确保了数据的顺序传输和错误检查。在C#中,我们...
VS2010 C# TCP通信程序全部源代码,使用Sockets类实现同步TCP通信。
在实际的TCP通信中,我们还需要处理数据的读写。使用NetworkStream对象,可以结合StreamReader和StreamWriter进行文本数据的读写,或者直接使用BufferedStream进行二进制数据的处理。 例如,发送字符串: ```csharp...
在C#中,我们可以使用System.Net.Sockets命名空间下的TcpClient和TcpListener类来实现客户端和服务器之间的TCP通信。 首先,我们需要创建一个TCP服务器。这通常涉及到以下步骤: 1. 创建一个TcpListener实例,指定...
本篇文章将详细探讨如何使用C#实现TCP通信,以帮助开发者快速理解和应用。 首先,TCP通信的基础是套接字(Socket),它是操作系统提供的网络通信接口。在C#中,我们可以通过System.Net.Sockets命名空间下的Socket类...
在C#中,`System.Net.Sockets`命名空间提供了用于TCP通信的类,如`TcpClient`和`TcpListener`。`TcpClient`代表客户端,负责发起连接请求;`TcpListener`则代表服务器端,监听特定端口的连接请求。 3. **TCP服务器...
资源名:C#使用ModbusTcp协议与西门子1200PLC通讯源码 资源类型:程序源代码 源码说明: C#使用ModbusTcp协议与西门子1200PLC通讯。包含modbus协议的全部八种功能码的读写程序。 适合人群:新手及有一定经验的开发...
通过实践这个TCP通信程序,你可以深入了解网络通信的流程,掌握C#中实现网络通信的方法,这对于开发涉及网络交互的软件,如即时聊天工具、文件传输应用等,具有重要的学习价值。同时,理解TCP协议的工作机制,也有助...
在TCP通信中,数据通常以字节流的形式传输。C#提供了BinaryReader和BinaryWriter类,它们可以方便地将各种类型的数据转换为字节流,反之亦然。创建这两个类的实例,关联到NetworkStream,即可进行数据的读写操作。...
在本教程中,我们将深入探讨如何使用C#设计一个简单的TCP通信实例程序。 首先,理解TCP通信的基本步骤至关重要。TCP通信主要包括以下环节: 1. **建立连接**:客户端通过`Socket`类创建一个套接字,并使用`Connect...
C#对三菱和西门子,欧姆龙等支持...2)支持ModBusTcp通信读写操作 3)支持ModBusRtu串口通信读写操作 4)支持ModBusAscii串口通信读写操作 5)支持ModbusRtuOverTcp通信读写操作 6)请放心下载,多个项目已经在使用;