реклама на сайте
подробности

 
 
> Программирование сокетов, не проходит bind
Dubov
сообщение Mar 20 2014, 06:20
Сообщение #1


Местный
***

Группа: Участник
Сообщений: 408
Регистрация: 28-05-12
Пользователь №: 72 052



CODE
int main(int argc, char* argv[])
{
#ifdef WIN32
WSADATA wsadata;
WSAStartup(MAKEWORD(2,2), &wsadata);
#endif

SOCKET s_server, s_client; // сокеты клиента и севера
sockaddr_in ssin; // адрес сокета
char * buffer = new char[1024]; // буфер данных
int len; // длина данных

// создаем сокет
s_server = socket(AF_INET, SOCK_STREAM, 0);
if (s_server == SOCKET_ERROR)
{
printf("Can't create socket.\n\rPush any button for exit.\n\r");
getchar();
return 0;
}
// формируем адрес сокета
ssin.sin_family = AF_INET;
ssin.sin_addr.s_addr = htonl(INADDR_ANY);
ssin.sin_port = htons(SRV_PORT);

// Привязываем сокет к адресу
if (bind(s_server, (sockaddr *)&ssin, sizeof(ssin)) == SOCKET_ERROR) //(sockaddr *)&ssin
{
printf("Can't bind socket to adress.\n\rPush any button for exit.\n\r");
getchar();
return 0;
}



// начинаем прослушку
listen(s_server, 5);
while(1)
{
// принимаем подключение
s_client = accept(s_server, NULL, NULL);
if (s_client == INVALID_SOCKET)
return 0;

// принимаем запрос от клиента
len = recv(s_client, buffer, MAXDATA, 0);
if (len == SOCKET_ERROR)
return 0;
buffer[len] = 0;

printf("%s\n",buffer);

// отправляем ответ
sprintf(buffer, "Got %d bytes of data.", len);
len = send(s_client, buffer, strlen(buffer), 0);
if (len == SOCKET_ERROR)
return 0;
// закрываем сокет
//closesocket(s_client);
shutdown(s_client, 1);
printf("Push any button for exit.");
getchar();
}

//closesocket(s_server);
shutdown(s_server, 1);
#ifdef WIN32
WSACleanup();
#endif
return 0;
}


программа завершается сообщение Can't bind socket to adress.

не могу понять почему. Код самый простой
Go to the top of the page
 
+Quote Post



Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 22nd July 2025 - 01:50
Рейтинг@Mail.ru


Страница сгенерированна за 0.01341 секунд с 7
ELECTRONIX ©2004-2016