c#上位机开发TCP/IP协议的winform程序
时间: 2023-12-13 17:05:45 浏览: 57
下面是一个使用 C# 和 WinForms 的示例代码,用于上位机开发TCP/IP协议的WinForm程序:
```csharp
using System;
using System.Net;
using System.Net.Sockets;
using System.Text;
using System.Windows.Forms;
namespace TCPClientApp
{
public partial class MainForm : Form
{
private TcpClient tcpClient;
private NetworkStream networkStream;
private byte[] buffer;
public MainForm()
{
InitializeComponent();
}
private void MainForm_Load(object sender, EventArgs e)
{
// 创建TCP客户端
tcpClient = new TcpClient();
buffer = new byte[1024];
}
private void btnConnect_Click(object sender, EventArgs e)
{
try
{
// 连接到服务器
string ipAddress = txtServerIP.Text;
int port = int.Parse(txtServerPort.Text);
tcpClient.Connect(IPAddress.Parse(ipAddress), port);
// 获取网络流
networkStream = tcpClient.GetStream();
lblStatus.Text = "已连接到服务器";
}
catch (Exception ex)
{
lblStatus.Text = "无法连接到服务器:" + ex.Message;
}
}
private void btnSend_Click(object sender, EventArgs e)
{
try
{
// 发送数据到服务器
string data = txtData.Text;
byte[] dataBytes = Encoding.ASCII.GetBytes(data);
networkStream.Write(dataBytes, 0, dataBytes.Length);
// 接收服务器响应
int bytesRead = networkStream.Read(buffer, 0, buffer.Length);
string response = Encoding.ASCII.GetString(buffer, 0, bytesRead);
txtResponse.Text = response;
}
catch (Exception ex)
{
lblStatus.Text = "发送数据时发生错误:" + ex.Message;
}
}
private void MainForm_FormClosing(object sender, FormClosingEventArgs e)
{
// 关闭网络流和TCP客户端
networkStream?.Close();
tcpClient?.Close();
}
}
}
```
这个示例代码创建了一个名为 `MainForm` 的 WinForms 窗体。在窗体加载时,它创建了一个 `TcpClient` 对象和一个用于接收数据的缓冲区。
窗体中有两个按钮,`btnConnect` 用于连接到服务器,`btnSend` 用于发送数据并接收服务器的响应。
点击 `btnConnect` 按钮时,它会尝试连接到指定的服务器IP地址和端口号,并获取网络流。如果连接成功,状态标签 `lblStatus` 将显示已连接到服务器的消息。
点击 `btnSend` 按钮时,它会将文本框 `txtData` 中的数据发送到服务器,并接收服务器的响应。响应数据将显示在文本框 `txtResponse` 中。
在窗体关闭时,它会关闭网络流和TCP客户端。
请注意,这只是一个示例代码,实际的上位机开发可能需要更多的功能和处理逻辑。希望对您有所帮助!如果您还有其他问题,请随时提问。