使用csharp 实现在一台电脑上5个程序之间通过TCP/IP传递数据的代码
时间: 2024-05-14 19:14:11 浏览: 15
以下是一个简单的示例,演示如何在一台电脑上使用C#通过TCP/IP传递数据:
```
using System;
using System.IO;
using System.Net;
using System.Net.Sockets;
using System.Threading;
class Program
{
static void Main(string[] args)
{
// 启动5个程序
for (int i = 0; i < 5; i++)
{
Thread thread = new Thread(new ParameterizedThreadStart(StartProgram));
thread.Start(i);
}
}
static void StartProgram(object id)
{
int programId = (int)id;
// 创建TCP/IP客户端
TcpClient client = new TcpClient();
client.Connect(IPAddress.Loopback, 12345);
// 发送数据
using (StreamWriter writer = new StreamWriter(client.GetStream()))
{
writer.WriteLine("Program " + programId + " 发送的数据");
writer.Flush();
}
// 接收数据
using (StreamReader reader = new StreamReader(client.GetStream()))
{
string response = reader.ReadLine();
Console.WriteLine("Program " + programId + " 收到的数据:" + response);
}
// 关闭客户端
client.Close();
}
}
```
在这个示例中,我们首先启动了5个程序,每个程序都会连接到本机的IP地址和端口号为12345的TCP服务器,然后发送一条消息,并等待接收来自服务器的响应。
在服务器端,我们需要创建一个TCP/IP服务器,以便接收来自客户端的连接和数据。以下是一个简单的示例:
```
using System;
using System.IO;
using System.Net;
using System.Net.Sockets;
using System.Threading;
class Program
{
static void Main(string[] args)
{
// 创建TCP/IP服务器
TcpListener listener = new TcpListener(IPAddress.Loopback, 12345);
listener.Start();
// 监听客户端连接
while (true)
{
TcpClient client = listener.AcceptTcpClient();
// 处理客户端请求
Thread thread = new Thread(new ParameterizedThreadStart(HandleClient));
thread.Start(client);
}
}
static void HandleClient(object clientObj)
{
TcpClient client = (TcpClient)clientObj;
// 接收数据
using (StreamReader reader = new StreamReader(client.GetStream()))
{
string request = reader.ReadLine();
Console.WriteLine("收到客户端请求:" + request);
// 发送响应
using (StreamWriter writer = new StreamWriter(client.GetStream()))
{
writer.WriteLine("服务器响应:" + request);
writer.Flush();
}
}
// 关闭客户端
client.Close();
}
}
```
在这个示例中,我们首先创建了一个TCP/IP服务器,并开始监听客户端连接。每次有客户端连接时,我们都会为其创建一个新的线程,用于处理客户端的请求和响应。在处理客户端请求时,我们首先接收来自客户端的数据,然后发送一条响应,并关闭客户端连接。
请注意,这个示例仅仅是一个简单的演示,实际应用中需要考虑更多的细节,例如异常处理、数据格式、并发性等等。