c# socket连接的问题
原来使用下面代码连接是没有问题的,但是对方端口从9811改为98111后,就在IPEndPoint IPEd = new ……这句出错,说98111对ToInt16太大,改为Convert.ToInt32还是提示错误,提示指定的参数已超出有效值范围 参数名:port。但98111没有超出Int32的范围,IPEndPoint的port参数也应该是接受Int32的,请问是什么原因,有什么办法解决?麻烦了!!!!
private void SockConnection()
{
try
{
sock = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);
sock.SendTimeout = 10000;
sock.ReceiveTimeout = 10000;
MessageBox.Show(Convert.ToInt32(global.BHport.ToString()).ToString());
IPEndPoint IPEd = new IPEndPoint(IPAddress.Parse(global.BHip.ToString()),Convert.ToInt16(global.BHport.ToString()));
sock.Connect(IPEd);
}
catch (Exception SConn)
{
MessageBox.Show(SConn.ToString(), "数据连接错误", MessageBoxButtons.OK, MessageBoxIcon.Error);
}
}
------解决方案--------------------端口数最大可以到65535,也就是Int16的最大值,你的98111是不行的!
------解决方案--------------------計算機的端口就那么多了吧﹐還訪問什么65535以后的端口?