高分急问关于Socket TCP方式重新连接服务器为何就连不上了呢?
我做TCP客户端,服务器端是别的公司的端口。
每分钟互相通讯一次,保持长连接,但还是每隔几天服务器可能因为各种原因,断开连接。
本来我以为重新连接好简单。我用了两种方式:
1。 我做了个Timer计时,计算超过2分钟没有收到过数据,就重新连接。
2。beginsend或beginreceive发生错误就重新连接。
但以上两种方式不能正常重新连上服务器,可能是我重连的代码写错了,请大家帮忙看看。
private static void IniSocket(){
string hostName="100.100.100.100";
//端口
int port=Int32.Parse("8090");
//得到主机信息
IPHostEntry ipInfo=Dns.GetHostByName(hostName);
//取得IPAddress[]
IPAddress[] ipAddr=ipInfo.AddressList;
//得到ip
IPAddress ip=ipAddr[0];
//组合出远程终结点
IPEndPoint hostEP=new IPEndPoint(ip,port);
//socket是form全局对象,现在创建Socket 实例
socket=new Socket(AddressFamily.InterNetwork,SocketType.Stream,ProtocolType.Tcp);
Connect(hostEP,socket);
Receive(socket);
}
这样,第一次连接就调用这段代码,没问题。
重连时,就是连不上,对方无反映。可排除服务器故障。