winform 创建tcp/ip服务端
时间: 2023-08-12 21:06:12 浏览: 154
下面是使用WinForm创建TCP/IP服务端的步骤:
1. 在WinForm中添加一个按钮和一个文本框控件,用于启动服务端和显示服务端状态。
2. 在按钮的Click事件中添加以下代码来启动服务端:
```csharp
using System.Net;
using System.Net.Sockets;
private TcpListener server = null;
private void btnStartServer_Click(object sender, EventArgs e)
{
try
{
// 设置IP地址和端口号
string ip = "127.0.0.1";
int port = 8888;
// 创建TcpListener对象
IPAddress ipAddress = IPAddress.Parse(ip);
server = new TcpListener(ipAddress, port);
// 开始监听客户端请求
server.Start();
// 显示服务端状态
txtStatus.Text = "服务端已启动,等待客户端连接...";
}
catch (Exception ex)
{
MessageBox.Show("启动服务端出错:" + ex.Message);
}
}
```
3. 在Form的Load事件中添加以下代码来启动服务端:
```csharp
private void Form1_Load(object sender, EventArgs e)
{
// 启动服务端
btnStartServer_Click(sender, e);
}
```
4. 在Form的Closing事件中添加以下代码来关闭服务端:
```csharp
private void Form1_FormClosing(object sender, FormClosingEventArgs e)
{
// 关闭服务端
server.Stop();
}
```
5. 在服务端启动后,使用TcpListener.AcceptTcpClient方法等待客户端连接:
```csharp
private void WaitForClient()
{
try
{
while (true)
{
// 等待客户端连接
TcpClient client = server.AcceptTcpClient();
// 处理客户端连接
ProcessClient(client);
}
}
catch (Exception ex)
{
MessageBox.Show("等待客户端连接出错:" + ex.Message);
}
}
```
6. 在ProcessClient方法中获取客户端的网络流并进行读写操作:
```csharp
private void ProcessClient(TcpClient client)
{
try
{
// 获取客户端网络流
NetworkStream stream = client.GetStream();
// 进行读写操作
// ...
// 关闭客户端连接
client.Close();
}
catch (Exception ex)
{
MessageBox.Show("处理客户端连接出错:" + ex.Message);
}
}
```
这样就可以使用WinForm创建TCP/IP服务端了,具体的读写操作可以根据实际需求进行实现。
阅读全文