写一个C#TCP服务器端口程序
时间: 2023-10-19 22:43:37 浏览: 94
C#编写的TCP客户端和服务端程序
3星 · 编辑精心推荐
当然可以!以下是一个简单的C# TCP服务器端口程序的示例:
```csharp
using System;
using System.Net;
using System.Net.Sockets;
using System.Text;
namespace TCPServer
{
class Program
{
static void Main(string[] args)
{
StartServer();
}
static void StartServer()
{
// 监听IP地址和端口号
string ip = "127.0.0.1";
int port = 8080;
// 创建TCP监听器
TcpListener listener = new TcpListener(IPAddress.Parse(ip), port);
try
{
// 开始监听
listener.Start();
Console.WriteLine("服务器已启动,正在监听 {0}:{1}", ip, port);
while (true)
{
Console.WriteLine("等待客户端连接...");
// 接受客户端连接
TcpClient client = listener.AcceptTcpClient();
Console.WriteLine("客户端已连接:{0}", client.Client.RemoteEndPoint);
// 处理客户端请求
HandleClient(client);
}
}
catch (Exception ex)
{
Console.WriteLine("服务器异常:{0}", ex.Message);
}
finally
{
// 停止监听并关闭连接
listener.Stop();
}
}
static void HandleClient(TcpClient client)
{
NetworkStream stream = client.GetStream();
try
{
byte[] buffer = new byte[1024];
int bytesRead;
// 读取客户端发送的数据
while ((bytesRead = stream.Read(buffer, 0, buffer.Length)) > 0)
{
string requestData = Encoding.ASCII.GetString(buffer, 0, bytesRead);
Console.WriteLine("接收到客户端消息:{0}", requestData);
// 处理客户端请求
string responseData = "服务器已接收到消息:" + requestData;
// 发送响应数据给客户端
byte[] responseBytes = Encoding.ASCII.GetBytes(responseData);
stream.Write(responseBytes, 0, responseBytes.Length);
Console.WriteLine("发送响应给客户端:{0}", responseData);
}
}
catch (Exception ex)
{
Console.WriteLine("处理客户端请求异常:{0}", ex.Message);
}
finally
{
// 关闭连接
stream.Close();
client.Close();
Console.WriteLine("客户端连接已关闭");
}
}
}
}
```
以上示例创建了一个TCP服务器,监听本地IP地址为127.0.0.1,端口号为8080。当客户端连接成功后,服务器会接收客户端发送的消息,并将接收到的消息作为响应发送回客户端。
请注意,此示例只是一个简单的演示,实际应用中可能需要更多的错误处理和逻辑判断。
阅读全文