使用c#打开指定端口

本文介绍如何使用process调用Dos命令,通过netshfirewalladdportopeningudp来打开特定端口,实现端口开放操作。
可以使用process 调用dos 命令打开需要打开的端口

netsh firewall add portopening udp(端口类型) 8081(端口号) myupdname(端口名称)

参考 http://support.microsoft.com/kb/875357

# 题目重述 如何在C#打开端口,用于与硬件设备(如15693读写器)通信? # 详解 在C#中“打开端口”通常指建立与指定IP地址和端口号的网络连接(TCP)或监听本地端口。以下是两种常见场景的实现方式: ### 1. **作为客户端连接远程设备(例如通过DTU连接读写器)** ```csharp using System.Net.Sockets; TcpClient client = new TcpClient(); try { await client.ConnectAsync("192.168.1.100", 5000); // IP和端口 NetworkStream stream = client.GetStream(); // 可进行数据读写 } catch (SocketException ex) { Console.WriteLine("连接失败: " + ex.Message); } finally { // 使用完毕后关闭 client.Close(); } ``` ### 2. **作为服务器监听本地端口** ```csharp using System.Net; using System.Net.Sockets; TcpListener listener = new TcpListener(IPAddress.Any, 8080); listener.Start(); Console.WriteLine("正在监听端口 8080..."); // 接收连接(阻塞) TcpClient client = await listener.AcceptTcpClientAsync(); NetworkStream stream = client.GetStream(); // 处理通信 // 结束时关闭 listener.Stop(); ``` ### 注意事项: - 需要 `System.Net.Sockets` 命名空间; - 端口被占用会导致异常; - 建议使用 `async/await` 避免阻塞主线程; - 实际项目中应添加超时、重试和错误处理机制。 # 知识点 - **TCP客户端连接**:使用 `TcpClient.ConnectAsync()` 向指定IP和端口发起连接请求,适用于连接读写器等设备。 - **TCP服务端监听**:使用 `TcpListener` 在本地绑定并监听端口,等待外部连接,可用于接收数据。 - **异步IO操作**:采用 `async/await` 模式进行非阻塞通信,防止UI线程卡顿,提升程序响应性。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值