本文介绍了在C#编程语言中如何实现基于TCP协议的网络通信,包括服务器端与客户端程序的基本架构和代码示例。
在C#中实现TCP通讯的方法包括以下几个步骤:
1. 创建一个Socket对象。
2. 连接服务器或监听客户端请求。
3. 发送和接收数据流。
4. 关闭连接。
下面是一个简单的示例代码,用于演示如何使用C#创建TCP通信的客户端和服务端程序。请注意,这里只提供基本框架,并未包含完整的错误处理逻辑或者复杂的网络编程特性:
服务端:
```csharp
using System;
using System.Net.Sockets;
using System.Text;
class TcpServer {
public static void Main() {
// 创建一个Socket对象。
var listener = new TcpListener(System.Net.IPAddress.Any, 13000);
// 开始监听客户端请求。
listener.Start();
Console.WriteLine(等待连接...);
while (true) {
var client = listener.AcceptTcpClient();
ThreadPool.QueueUserWorkItem(o => HandleConnection(client));
}
}
private static void HandleConnection(TcpClient client) {
try {
// 接收数据。
NetworkStream stream = client.GetStream();
byte[] buffer = new byte[1024];
int bytesRead;
while ((bytesRead = stream.Read(buffer, 0, buffer.Length)) > 0) {
string receivedData = Encoding.ASCII.GetString(buffer, 0, bytesRead);
Console.WriteLine(收到客户端消息: + receivedData);
// 发送数据。
byte[] msgSent = System.Text.Encoding.ASCII.GetBytes(服务器回复: + DateTime.Now.ToString());
stream.Write(msgSent, 0, msgSent.Length);
}
} catch (Exception ex) {
Console.WriteLine(ex.Message);
}
}
}
```
客户端:
```csharp
using System;
using System.Net.Sockets;
class TcpClientExample {
public static void Main() {
// 创建一个Socket对象。
var client = new TcpClient();
try {
// 连接到服务器。
client.Connect(localhost, 13000);
Console.WriteLine(连接到服务器成功);
NetworkStream stream = client.GetStream();
byte[] msgSent = System.Text.Encoding.ASCII.GetBytes(客户端消息: + DateTime.Now.ToString());
stream.Write(msgSent, 0, msgSent.Length);
// 接收数据。
byte[] buffer = new byte[1024];
int bytesRead;
while ((bytesRead = stream.Read(buffer, 0, buffer.Length)) > 0) {
string receivedData = Encoding.ASCII.GetString(buffer, 0, bytesRead);
Console.WriteLine(收到服务器消息: + receivedData);
}
} catch (Exception ex) {
Console.WriteLine(ex.Message);
}
}
}
```
注意:在实际使用中,可能需要根据具体需求调整端口号、网络地址等信息,并且增加错误处理机制以确保程序的健壮性。