imho.ws |
![]() |
![]() |
![]() |
# 1 |
Junior Member
Регистрация: 10.10.2003
Адрес: Москва
Сообщения: 136
![]() ![]() ![]() ![]() |
![]()
Пытаюсь разобраться с сабжем по инфе с firststeps.ru. С небольшими изменениями делал все как там описано, но на стадии привязки сокета к имени(адресу) он ругается кодом ошибки 10038, мол, я пытаюсь вместо сокета функции bind() передать что-то другое ("An operation was attempted on something that is not a socket"). Самое странное, что непосредственно перед этим абсолютно без ошибок создается сам сокет и с указателем на него ничего не делается. Вот так это выглядит:
Код:
SOCKADDR_IN socketaddr; socketaddr.sin_family=AF_INET; socketaddr.sin_addr.S_un.S_addr = inet_addr("127.0.0.1"); socketaddr.sin_port = PORT_ADDR; if (bind(servsocket,(LPSOCKADDR)&socketaddr,sizeof(socketaddr)) == SOCKET_ERROR) { //дальше просто сообщения об ошибках...
__________________
"Самое великое достижение Америки - каждый должен голосовать". - Джордж Буш Мл.(Остин, 08.12.00). |
![]() |
![]() |
# 2 |
Member
Регистрация: 01.01.2004
Адрес: Воронеж, Россия
Сообщения: 206
![]() ![]() ![]() ![]() ![]() ![]() ![]() |
Поподробнее можно? Какой компилятор, что в исходниках (объявления переменой servsocket и т.д.).
btw. на сколько я понимаю, такой сокет будет слушать только локалхост (в сокаддре надо было прописать s_addr = INADDR_ANY)
__________________
<SPEEDing|VoNK> you cant use knoppix as a server can you? <bob> why not? people use windows as one. |
![]() |
![]() |
# 3 |
Junior Member
Регистрация: 10.10.2003
Адрес: Москва
Сообщения: 136
![]() ![]() ![]() ![]() |
C++ Builder 6. Про локальный адрес прослушивания - это пока как заглушка стоит, потом прога тоже буде слушать только определенный адрес скорее всего. А сам сокет сделан вот так:
Код:
SOCKET servsocket; servsocket = socket(PF_INET,SOCK_STREAM,0);
__________________
"Самое великое достижение Америки - каждый должен голосовать". - Джордж Буш Мл.(Остин, 08.12.00). |
![]() |
![]() |
# 5 |
Junior Member
Регистрация: 10.10.2003
Адрес: Москва
Сообщения: 136
![]() ![]() ![]() ![]() |
Дико извиняюсь, ошибка как всегда была нелепой. В функции, где я создавал сокет забыл потереть функцию его закрытия. В любом случае, огромное спасибо за внимание к проблеме!
![]() PS: Посмотрел в winsock.h, там написано PF_INET = AF_INET... вот.
__________________
"Самое великое достижение Америки - каждый должен голосовать". - Джордж Буш Мл.(Остин, 08.12.00). Последний раз редактировалось TRiPLE; 16.06.2004 в 17:37. |
![]() |