用c#的tcpclient写一个服务器和客户端
时间: 2024-04-14 09:26:25 浏览: 27
当然可以!下面是一个简单的示例,展示如何使用C#的TcpClient类创建一个基本的服务器和客户端。
首先是服务器端的代码:
```csharp
using System;
using System.Net;
using System.Net.Sockets;
using System.Text;
public class Server
{
public static void Main()
{
IPAddress ipAddress = IPAddress.Parse("127.0.0.1"); // 设置服务器IP地址
int port = 8888; // 设置服务器端口号
TcpListener listener = new TcpListener(ipAddress, port);
listener.Start();
Console.WriteLine("服务器启动,等待客户端连接...");
TcpClient client = listener.AcceptTcpClient(); // 等待客户端连接
Console.WriteLine("客户端连接成功!");
NetworkStream stream = client.GetStream();
byte[] buffer = new byte[1024];
int bytesRead;
while ((bytesRead = stream.Read(buffer, 0, buffer.Length)) > 0)
{
string data = Encoding.ASCII.GetString(buffer, 0, bytesRead);
Console.WriteLine("接收到消息: " + data);
// 处理接收到的消息,这里简单地将消息转为大写后返回
string response = data.ToUpper();
byte[] responseData = Encoding.ASCII.GetBytes(response);
stream.Write(responseData, 0, responseData.Length);
Console.WriteLine("发送响应: " + response);
}
client.Close();
listener.Stop();
}
}
```
接下来是客户端的代码:
```csharp
using System;
using System.Net;
using System.Net.Sockets;
using System.Text;
public class Client
{
public static void Main()
{
string serverIP = "127.0.0.1"; // 设置服务器IP地址
int serverPort = 8888; // 设置服务器端口号
TcpClient client = new TcpClient(serverIP, serverPort);
Console.WriteLine("与服务器连接成功!");
NetworkStream stream = client.GetStream();
while (true)
{
Console.Write("请输入要发送的消息: ");
string message = Console.ReadLine();
byte[] data = Encoding.ASCII.GetBytes(message);
stream.Write(data, 0, data.Length);
byte[] buffer = new byte[1024];
int bytesRead = stream.Read(buffer, 0, buffer.Length);
string response = Encoding.ASCII.GetString(buffer, 0, bytesRead);
Console.WriteLine("接收到响应: " + response);
}
client.Close();
}
}
```
这是一个简单的示例,服务器端接收客户端发送的消息并将其转换为大写后返回给客户端。你可以根据自己的需求进行进一步的扩展和修改。记得在运行代码之前,先启动服务器端再启动客户端。