Winsock: Udp сервер под Win

  • Автор темы Guest
  • Дата начала
G

Guest

#1
Необходим пока хотя бы простейший UDP сервер под win.

Код:
// СЕРВЕР
#include <winsock2.h>
#include <windows.h>
#include <stdio.h>
#include <ctime>

#pragma comment(lib, "ws2_32.lib")

//using namespace std;

char Hz [200];

int main(int argc, char *argv[])
{
struct sockaddr_in sa;
int fromlen, bound, error; 
SOCKET sock;
WSADATA ws;

WSAStartup (MAKEWORD( 1, 1 ), &ws);

sa.sin_family = AF_INET;
sa.sin_addr.s_addr = INADDR_ANY;
sa.sin_port = htons(7654);

sock = socket(AF_INET,SOCK_DGRAM,IPPROTO_UDP);
printf ("sock = %d\n", sock);
fromlen = sizeof (sa); 
printf ("fromlen = %d\n", fromlen);
bound = bind (sock,(struct sockaddr *)&sa, sizeof(struct sockaddr));
printf ("bound = %d\n", bound);

while (1) {
printf ("recv test....\n");
int recsize = recvfrom(sock, Hz, 100, 0, (struct sockaddr *)&sa, &fromlen);
if (recsize < 0)
printf( "Some fucking ERROR!\n" );
printf("recsize: %d\n ",recsize);
Sleep(1000);
printf("datagram: %s\n",Hz);
}

getchar();
}
Сервер написал, запустил.
Пишет:
sock = 4000
fromlen = 16
bound = 0
recv test...
То есть все прошло успешно, и ждем пакетов в 7654 порт.

Пытаюсь присоединиться телнетом:
telent 127.0.0.1 7654
Телнет говорит, что, мол, невозможно подключиться
Когда запускаю клиент, который шлет туда датаграммы, ноль внимания =(((

В чем дело? Пишу в Visual Studio 2005, под WinXP. Права не админские, но под админом тоже пробовал - не работает

Помогите, пожалуйста...