看下這個異常的類型 在捕捉異常的時候處理為關閉并重新打開端口監(jiān)聽(這個看你自己需求) 然后在socketException下面再catch其它exception 進行彈出錯誤提示之類的操作 就可以了
順平ssl適用于網站、小程序/APP、API接口等需要進行數據傳輸應用場景,ssl證書未來市場廣闊!成為創(chuàng)新互聯建站的ssl證書銷售渠道,可以享受市場價格4-6折優(yōu)惠!如果有意向歡迎電話聯系或者加微信:18982081108(備注:SSL證書合作)期待與您的合作!
我在開始程序運行時候 同時打開兩個串口 比如 COM1 和 COM2 當一開始只用到COM1 過段時間后 COM2 會自動關閉? COM2 暫時還沒用到。 ------解決方案-------------------------------------------------------- 沙發(fā),幫頂! ------解決方案-------------------------------------------------------- 不會,除非代碼中有BUG. ------解決方案-------------------------------------------------------- 不會自動關閉的 或者通過代碼關閉 ------解決方案-------------------------------------------------------- 打開后必須關閉的,應該不會自動關閉 ------解決方案-------------------------------------------------------- 用兩個SerialPort 對象,分別打開兩個串口,應該不會出現你這樣的問題。MSDN: SerialPort.Open 方法 每個 SerialPort 對象只能有一個打開的連接。 對于所有應用程序,最佳做法是在調用 Close 方法之后和嘗試調用 Open 方法之前等待一會 兒,因為端口可能未即時關閉。 ------解決方案-------------------------------------------------------- 用線程控制個時間,及時開關 不會自動關閉。
using?System.Net;
if(!string.IsNullOrEmpty(txtPort.Text))
{
IPAddress?ip?=?IPAddress.Parse(txtIp.Text);
IPEndPoint?point=new?IPEndPoint(ip,int.Parse(txtPort.Text));
try
{
TcpClient?tcp=new?TcpClient();
tcp.Connect(point);
MessageBox.Show("端口打開");
}catch(Exception?ex)
{
MessageBox.Show(ex.Message);
}
}
通過以上這個方法,只能判斷你是否能鏈接這個端口。
通過以下這個方法,能判斷端口是否開放
public?static?void?GetTcpConnections()?
{?
IPGlobalProperties?properties?=?IPGlobalProperties.GetIPGlobalProperties();?
TcpConnectionInformation[]?connections?=?properties.GetActiveTcpConnections();?
string?str="";
foreach?(TcpConnectionInformation?t?in?connections)?
{?
str+="Local?endpoint:"+?t.LocalEndPoint.ToString()+",";?
str+="Remote?endpoint:"+?t.RemoteEndPoint.ToString()+",";?
str+=t.State.ToString()+",";?
}?
MessageBox.Show(str);
}