
19.02.2009, 22:08
|
|
Постоянный
Регистрация: 05.05.2006
Сообщений: 743
Провел на форуме: 2982851
Репутация:
107
|
|
Подскажите по этому коду, почему невыводится ип подконектившегося клиента?
Код:
struct datas
{
SOCKET ss;
SOCKADDR_IN sadr;
};
DWORD WINAPI twins(LPVOID lParam)
{
datas *params=(datas*)lParam;
SOCKET s;s=params->ss;
char *buf=new char[1024];
for(;;)
{
recv(s,buf,1024,0);
Sleep(500);
send(s,buf,strlen(buf),0);
if(strcmp(buf,"exit")==0){break;}
memset(buf,NULL,strlen(buf));
}
delete []buf;
}
int main()
{
DWORD id;
SOCKET sin,sout;WSADATA wsd;
SOCKADDR_IN ladr,cadr;
datas params;
WSAStartup(MAKEWORD(2,0),&wsd);
ladr.sin_family=AF_INET;
ladr.sin_port=htons(250);
ladr.sin_addr.s_addr=0;
sin=socket(AF_INET,SOCK_STREAM,0);
bind(sin,(sockaddr*)&ladr,sizeof(ladr));
for(;;)
{
Sleep(300);
listen(sin,10);
int sz=sizeof(cadr);
sout=accept(sin,(sockaddr*)&cadr,&sz);
params.ss=sout;
params.sadr=cadr;
getpeername(sout,(sockaddr*)&cadr,&sz);
printf("\n",inet_ntoa(cadr.sin_addr));
CreateThread(0,0,&twins,(void*)¶ms,0,&id);
}
//WSACleanup();
}
|
|
|