| 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 в 18:37. |
|
|