因有些設備如PLC 如要連線它必須要對方Client指定自身的port
絕大部分解決方案都採用C++來處理
至於.NET? 仿間很少聽說過有人有實作此方式
基本上.NET也有提供此方式
如下
IPAddress ipAddress = Dns.GetHostEntry(Dns.GetHostName()).AddressList[0];
IPEndPoint ipLocalEndPoint = new IPEndPoint(ipAddress , clientPort);
//IPEndPoint ipLocalEndPoint = new IPEndPoint(IPAddress.Any, clientPort); //如果connet發生錯誤時可以用這個試試看
TcpClient clientSocket = new TcpClient(ipLocalEndPoint); //自己指定port
clientSocket.Connect(remoteHost, remotePort); //連線至別人的Server IP與port
MSDN 解釋如下
https://msdn.microsoft.com/zh-tw/library/3bsb3c8f(v=vs.110).aspx
TcpClient 建構函式 (IPEndPoint)
這個建構函式會建立新 TcpClient 和繫結至 IPEndPoint 所指定 localEP 參數。 在呼叫這個建構函式之前,您必須建立 IPEndPoint 使用您想要傳送和接收資料的 IP 位址和連接埠號碼。 您不需要連接和通訊之前指定本機 IP 位址和連接埠號碼。 如果您建立 TcpClient 使用任何其他建構函式,基礎的服務提供者會指派最適當的本機 IP 位址和連接埠號碼。
您必須呼叫 Connect 方法,然後再傳送和接收資料。
留言列表