close

因有些設備如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 方法,然後再傳送和接收資料。

 

 

 

 

arrow
arrow

    cmdunlop 發表在 痞客邦 留言(0) 人氣()