[an error occurred while processing this directive]
Подскажите с сокетами под Win...
(«Телесистемы»: Конференция «Микроконтроллеры и их применение»)

миниатюрный аудио-видеорекордер mAVR

Отправлено Tow 23 сентября 2006 г. 13:20

Так сокет создается и биндится:

m_Socket = socket(AF_INET, SOCK_DGRAM, IPPROTO_UDP);

memset ((char *)&SockName, '\0', sizeof(SockName));
SockName.sin_family = AF_INET;
SockName.sin_addr.S_un.S_addr = htonl(INADDR_ANY);
SockName.sin_port = htons(m_LocalPort);

if (bind(m_Socket, (SOCKADDR *) &SockName, sizeof (SockName)) != 0)
return;


Вот так происходит передача:
memset((unsigned char *)&TargetAddr, '\0', sizeof(TargetAddr));
TargetAddr.sin_family = AF_INET;
TargetAddr.sin_addr.S_un.S_addr = htonl(Controller->Address);
TargetAddr.sin_port = htons(REMOUTE_PORT);
sendto(m_Socket,
(char *)buf,
len,
0,
(SOCKADDR *) &TargetAddr,
TargetAddrSize);

И вот так прием:
len = recvfrom(m_Socket,
(char *)buf,
ONC_BUFFER_SIZE - count,
0,
(SOCKADDR *) &SenderAddr,
&SenderAddrSize);


А теперь вопросы:

1) Номер удаленного порта REMOUTE_PORT равняется 5000. В пакете который уходит из хоста к контроллеру порт назначения равняется 1... Почему?

2) Комп виснет чтении ответа. Тоже не понятно почему.

Помогите, пожалуйства. WSAStartup происходит без ошибок.

WORD wVersionRequested;
WSADATA wsaData;
int err;

wVersionRequested = MAKEWORD( 2, 2 );

err = WSAStartup( wVersionRequested, &wsaData );
if ( err != 0 )
return;


Составить ответ  |||  Конференция  |||  Архив

Ответы


Отправка ответа
Имя (обязательно): 
Пароль: 
E-mail: 

Тема (обязательно):
Сообщение:

Ссылка на URL: 
Название ссылки: 
URL изображения: 


Rambler's Top100 Рейтинг@Mail.ru
Перейти к списку ответов  |||  Конференция  |||  Архив  |||  Главная страница  |||  Содержание