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发送数据包。我怎么设置这个?

c# TCPclient set IP

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);