C# 创建tcp服务端,带界面
时间: 2024-09-10 14:14:41 浏览: 44
基于C# Winform完成Tcp客户端与服务端、udp客户端服务端通讯工具
在C#中创建一个带界面的TCP服务器,你可以使用Windows Forms或WPF作为图形用户界面框架,同时结合System.Net套接字类来监听客户端连接。以下是简化的步骤:
1. **创建Windows Forms项目**:
- 打开Visual Studio,选择“创建新项目”,然后选择“Windows Forms App (.NET Framework)”。
2. **添加所需命名空间**:
```csharp
using System;
using System.Net;
using System.Net.Sockets;
using System.Windows.Forms;
```
3. **设计用户界面**:
- 添加必要的控件,比如按钮、文本框等,用于显示状态信息或者接收客户端消息。
- 创建一个`TcpClient`实例用于处理网络连接。
4. **编写服务器逻辑**:
```csharp
private TcpListener serverSocket;
private Form1 form;
// 在Form1的Load事件中启动服务器
private void Form1_Load(object sender, EventArgs e)
{
serverSocket = new TcpListener(IPAddress.Any, 8080); // 监听任意IP的8080端口
serverSocket.Start();
form.Text = "TCP Server (Listening)";
}
// 服务器端接受连接并响应客户端请求
private async void ListenForClients()
{
while (true)
{
try
{
var client = await serverSocket.AcceptTcpClientAsync();
HandleNewClient(client);
}
catch (Exception ex)
{
MessageBox.Show("Error: " + ex.Message);
}
}
}
private void HandleNewClient(TcpClient client)
{
// 这里可以创建新的线程或异步委托来处理每个客户端连接
using StreamReader reader = new StreamReader(client.GetStream());
using StreamWriter writer = new StreamWriter(client.GetStream(), Encoding.UTF8);
// 读取客户端数据并显示在UI上
string message = reader.ReadLine();
textBox_Status.Text += $"Received from client: {message}\n";
// 发送回复给客户端
writer.WriteLine("Server received your message.");
client.Close(); // 关闭连接后释放资源
}
```
5. **启动服务器**:
- 确保在`ListenForClients`方法中注册适当的事件,以便在用户界面上更新状态或接收客户端消息。
- 可能需要在按钮点击或其他操作上绑定到`ListenForClients`函数。
6. **运行项目**:
- 编译并运行应用程序,打开一个新的命令提示符窗口,通过`telnet [服务器地址] [端口号]`测试连接。
阅读全文