昨天还好好的程序,今天不知为什么不行了......connect第一次连接一个端口时正常,没接上总是-1,如果成功连上一次,第二次连总是返回0,不论是否成功每个端口只有一次正常连接,sinffer 发现除了成功连接的以外,更本没有包发出去,郁闷了.用了以下方法1:
closesocket(s); // 释放Windows Socket DLL的相关资源
WSACleanup();2:重启
代码如下,这只是其中一个,我不知试了多少代码了,都不行.....WSADATA wsaData;
SOCKET s;
SOCKADDR_IN ServerAddr;
int Port = 100;
u_long i;
//初始化Windows Socket 2.2 WSAStartup(MAKEWORD(2,2), &wsaData);
// 创建一个新的Socket来连接服务器
s = socket(AF_INET, SOCK_STREAM, IPPROTO_TCP);
// 填写客户端地址信息
// 端口为5150
// 服务器IP地址为"136.149.3.29",注意使用inet_addr将IP地址转换为网络格式 ServerAddr.sin_family = AF_INET;
ServerAddr.sin_port = htons(Port);
ServerAddr.sin_addr.s_addr = inet_addr("192.168.18.4"); // 向服务器发出连接请求
SOCKET conn;
while(1)
{
conn=connect(s, (SOCKADDR *) &ServerAddr, sizeof(ServerAddr));
if(conn==0)
{ printf("conn");
break;
}
}
closesocket(s); // 释放Windows Socket DLL的相关资源
WSACleanup();2:重启
代码如下,这只是其中一个,我不知试了多少代码了,都不行.....WSADATA wsaData;
SOCKET s;
SOCKADDR_IN ServerAddr;
int Port = 100;
u_long i;
//初始化Windows Socket 2.2 WSAStartup(MAKEWORD(2,2), &wsaData);
// 创建一个新的Socket来连接服务器
s = socket(AF_INET, SOCK_STREAM, IPPROTO_TCP);
// 填写客户端地址信息
// 端口为5150
// 服务器IP地址为"136.149.3.29",注意使用inet_addr将IP地址转换为网络格式 ServerAddr.sin_family = AF_INET;
ServerAddr.sin_port = htons(Port);
ServerAddr.sin_addr.s_addr = inet_addr("192.168.18.4"); // 向服务器发出连接请求
SOCKET conn;
while(1)
{
conn=connect(s, (SOCKADDR *) &ServerAddr, sizeof(ServerAddr));
if(conn==0)
{ printf("conn");
break;
}
}
。难道一个端口可以同时多次连接不成?
{ printf("conn");
break;
}返回值为0就退出啊!!晕死,都看什么了.......找到原因了,可问题还没有解决,我现在可以用telnet所有IP的25,80,等我用过的端口,就是说我程序是正常的,对winsock来说,是连上了...其实更本没连上.......可为什么出现这种问题啊!!!!!!!!系统问题,可还是不知原因!