|
|
我是这么写的(这段代码是抽出来的,本人对网络不精,如代码有可笑或错误之处请指出,谢谢
int segment;
char subNet[20];
SOCKET socket;
#define NETCMD_LOOKUP "L"
#define NETCMD_SIZE sizeof("L")
for (int i=1; i<255; i++) //doSearch.
{
ZeroMemory(subNet, 20);
sprintf(subNet, "192.168.%d.%d", segment, i);
if (ConnectToListener(socket, subNet, port) != NET_FAILED)
{
int a = WSAGetLastError();
if (NetSend(socket, NETCMD_LOOKUP, NETCMD_SIZE) < 0)
continue;
}
} // end for
调试过程中我发现了ConnectToListener函数只有第一次循环时才是有效的(是不是一个socket只能connect一次?) 现在我只想到一个很苯的办法,就是没有connect上就关闭socket, 然后再新开一个socket继续搜索*_*,有更好的办法吗? T_T [em7] |
|