Привет всем!

У мя проблема! Пишу сервер на API C++ .
При попытке подключения к серверу в telnet виснет на (подключение...) .
много гуглил и читал книги... но ничего не выходит
WSADATA wsaData;
WSAStartup(MAKEWORD(2, 0), &wsaData);
SOCKET sock, sock_Client;
struct sockaddr_in addr, addr_Client;
sock = socket(AF_INET, SOCK_STREAM, IPPROTO_IP);
addr.sin_addr.s_addr = htonl(INADDR_ANY);
addr.sin_family = AF_INET;
addr.sin_port = htons(5050);
bind(sock, (struct sockaddr *)&addr, sizeof(addr));
listen(sock, 1);
while(1) {
sock_Client = accept(sock, (struct sockaddr *)&addr_Client, 0);
...
}
ПОМОГИТЕ КТО МОЖЕТ!!!
Зарание спасибо!!!
16.01.08 06:10: Перенесено модератором из 'C/C++' — Odi$$ey
Может стоит добавить проверку результатот выполнения bind и listen с печатью кодов ошибок? Станет ясно где собака порылась.
Здравствуйте, Socket, Вы писали:
S>accept(sock, 0, 0);
S>попробуй
И твой способ и способ AlexCrush'а мне не помогают
проверки ошибок не выдают, а
accept(sock, 0, 0);
новой песни не играют.
Но и на этом спасибо!!!
P.S: Вот бы кто у себя попробывал этот код(или с изменениями) и отписался здесь... я был бы очень признателен
Может это только у меня не работает???
Здравствуйте, Evilguc, Вы писали:
WSADATA w;
WSAStartup(0x202,&w);
SOCKET sock;
struct sockaddr_in addr;
if( INVALID_SOCKET != (sock = socket(AF_INET, SOCK_STREAM, IPPROTO_IP)) ){
addr.sin_addr.s_addr = htonl(INADDR_ANY);
addr.sin_family = AF_INET;
addr.sin_port = htons(5050);
if( SOCKET_ERROR != bind(sock,(struct sockaddr *)&addr,sizeof(addr)) ){
if( SOCKET_ERROR != listen(sock,0) ){
for(;;){
SOCKET s = accept(sock,0,0);
char c;
while( recv(s,&c,1,0) ){
send(s,&c,1,0);
}
}
}
}
}
проверил — у меня работает с телнетом, получился вот такой вот простенький эхо сервер
Здравствуйте, Socket, Вы писали:
S>проверил — у меня работает с телнетом, получился вот такой вот простенький эхо сервер
Еще нулями надо бы addr забить перед использованием.
Почему не работает у Evilguc —
Может файрволл какой-нить, может еще что.