winform tcp demo
时间: 2023-07-31 21:08:59 浏览: 26
好的,我可以为您提供一个简单的WinForm TCP Demo,用于建立客户端和服务器之间的TCP连接。
首先,您需要创建两个项目:一个客户端项目和一个服务器项目。然后,将以下代码添加到每个项目中的Form1.cs文件中。
服务器代码:
```csharp
using System;
using System.Net;
using System.Net.Sockets;
using System.Text;
using System.Threading;
using System.Windows.Forms;
namespace Server
{
public partial class Form1 : Form
{
private TcpListener _server;
private TcpClient _client;
private Thread _listenThread;
private NetworkStream _clientStream;
public Form1()
{
InitializeComponent();
}
private void Form1_Load(object sender, EventArgs e)
{
StartServer();
}
private void StartServer()
{
_server = new TcpListener(IPAddress.Any, 8888);
_server.Start();
_listenThread = new Thread(ListenForClients);
_listenThread.Start();
}
private void ListenForClients()
{
while (true)
{
_client = _server.AcceptTcpClient();
_clientStream = _client.GetStream();
byte[] message = Encoding.ASCII.GetBytes("Welcome to the server!");
_clientStream.Write(message, 0, message.Length);
Thread clientThread = new Thread(HandleClientComm);
clientThread.Start();
}
}
private void HandleClientComm()
{
byte[] buffer = new byte[1024];
int bytesRead;
while (true)
{
bytesRead = 0;
try
{
bytesRead = _clientStream.Read(buffer, 0, 1024);
}
catch
{
break;
}
if (bytesRead == 0)
{
break;
}
string message = Encoding.ASCII.GetString(buffer, 0, bytesRead);
MessageBox.Show("Client says: " + message);
}
_client.Close();
}
}
}
```
客户端代码:
```csharp
using System;
using System.Net.Sockets;
using System.Text;
using System.Windows.Forms;
namespace Client
{
public partial class Form1 : Form
{
private TcpClient _client;
private NetworkStream _clientStream;
public Form1()
{
InitializeComponent();
}
private void btnConnect_Click(object sender, EventArgs e)
{
try
{
_client = new TcpClient("localhost", 8888);
_clientStream = _client.GetStream();
byte[] message = new ASCIIEncoding().GetBytes("Hello, server!");
_clientStream.Write(message, 0, message.Length);
btnSend.Enabled = true;
}
catch (Exception ex)
{
MessageBox.Show(ex.Message);
}
}
private void btnSend_Click(object sender, EventArgs e)
{
byte[] message = new ASCIIEncoding().GetBytes(txtMessage.Text);
_clientStream.Write(message, 0, message.Length);
}
}
}
```
这些代码将创建一个TCP服务器和一个TCP客户端,当客户端与服务器建立连接时,服务器将发送一个欢迎消息。客户端可以向服务器发送消息并在对话框中显示服务器的响应。