c# TCPclient set IP
本文关键字:IP set TCPclient | 更新日期: 2023-09-27 18:04:26
我正在尝试使用httpclient发送数据包
TcpClient tc = new TcpClient(ip, 4500);
string s = "A7007000601D3B00";
byte[] arr = new byte[s.Length/2];
for ( var i = 0 ; i<arr.Length ; i++ ){
arr[i] = (byte)Convert.ToInt32(s.Substring(i*2,2), 16);
}
NetworkStream stream = tc.GetStream();
stream.Write(arr, 0, arr.Length);
tc.Close();
问题是它从端口47109发送,但是我需要使用端口46324发送数据包。我怎么设置这个?
TcpClient构造函数有一个过载,允许您将其绑定到特定的本地IP地址和端口。
示例的原因是有一种方法来指定要在tcpClient中使用的本地端口?不工作可能是因为列表中的第一个地址实际上不是本地机器的IP地址。这样做可能会解决这个问题,并拉出正确的本地IP地址:
string remoteIP = "x.x.x.x";
IPAddress ipAddress = Dns.GetHostEntry(Dns.GetHostName()).AddressList.Where(x => x.AddressFamily == AddressFamily.InterNetwork).First();
IPEndPoint ipLocalEndPoint = new IPEndPoint(ipAddress, 47109);
TcpClient clientSocket = new TcpClient(ipLocalEndPoint);
clientSocket.Connect(remoteIP, 4500);