我遇到连接外部源插座的问题
见下面我的构造函数。
//使用UDP套接字
clientSocket = new Socket(AddressFamily.InterNetwork,
SocketType.Dgram, ProtocolType.Udp);
EndPoint ourEP = new IPEndPoint(IPAddress.Any, 1450);
//Listen asynchronously on port 1450 for coming messages (Invite, Bye, etc).
clientSocket.Bind(ourEP);
//Receive data from any IP.
EndPoint remoteEP = (EndPoint)(new IPEndPoint(IPAddress.Any, 0));
byteData = new byte[1024];
//Receive data asynchornously.
clientSocket.BeginReceiveFrom(byteData,
0, byteData.Length,
SocketFlags.None,
ref remoteEP,
new AsyncCallback(OnReceive),
null);
这是连接按钮功能:
private void btnCall_Click(object sender, EventArgs e)
{
//Get the IP we want to connect.
otherPartyIP = new IPEndPoint(IPAddress.Parse(txtCallToIP.Text), 1450);
otherPartyEP = (EndPoint)otherPartyIP;
}
我通过互联网建立聊天应用程序。我打开端口1450防火墙并向前添加端口,但它没有连接。你能帮忙吗?
答案 0 :(得分:0)
使用UDP时,您必须确保正确设置数据包可以传输的HOPS数量。
我不是很确定,但我认为默认值是0或1。
使用套接字上的Ttl属性进行实验。如果您在非常短的路径上进行测试,请尝试将其设置为10.
或者将其设置得更高,因为数据报的ttl属性表示数据包可以通过它到达目的地的点/路由器(实际上是跳数)。
值范围可以是0到255.
希望这有帮助