C#TCP/IP窗体客户端代码
时间: 2023-07-17 14:59:37 浏览: 90
当然,以下是一个简单的C# TCP/IP窗体客户端的代码示例:
```csharp
using System;
using System.Net;
using System.Net.Sockets;
using System.Text;
using System.Windows.Forms;
namespace TcpClientExample
{
public partial class Form1 : Form
{
private TcpClient client;
private NetworkStream stream;
public Form1()
{
InitializeComponent();
}
private void btnConnect_Click(object sender, EventArgs e)
{
try
{
client = new TcpClient();
client.Connect(txtServerIP.Text, int.Parse(txtPort.Text));
stream = client.GetStream();
// 连接成功后的处理
AddMessage("Connected to server.");
// 启动接收消息的线程
var receiveThread = new System.Threading.Thread(ReceiveMessage);
receiveThread.Start();
}
catch (Exception ex)
{
MessageBox.Show("Error: " + ex.Message);
}
}
private void btnSend_Click(object sender, EventArgs e)
{
try
{
string message = txtMessage.Text;
byte[] data = Encoding.ASCII.GetBytes(message);
stream.Write(data, 0, data.Length);
stream.Flush();
AddMessage("Sent: " + message);
txtMessage.Clear();
}
catch (Exception ex)
{
MessageBox.Show("Error: " + ex.Message);
}
}
private void ReceiveMessage()
{
try
{
while (true)
{
byte[] data = new byte[1024];
int bytesRead = stream.Read(data, 0, data.Length);
string message = Encoding.ASCII.GetString(data, 0, bytesRead);
AddMessage("Received: " + message);
}
}
catch (Exception ex)
{
MessageBox.Show("Error: " + ex.Message);
}
}
private void AddMessage(string message)
{
if (InvokeRequired)
{
Invoke(new Action<string>(AddMessage), message);
return;
}
lstMessages.Items.Add(message);
}
}
}
```
这是一个简单的窗体客户端,包含了连接服务器、发送消息和接收消息的功能。通过调用`Connect`方法连接到指定的服务器IP和端口,然后在按钮点击事件中调用`Write`方法发送消息,通过调用`Read`方法接收服务器返回的消息。在接收消息的线程中,使用`Invoke`方法将消息添加到列表框中显示。
请注意,此代码只是一个简单的示例,实际应用中可能需要添加错误处理、断开连接等其他功能。
阅读全文