Как связать SOCKET и Handle?
От: Шурик П. Россия  
Дата: 26.09.05 10:00
Оценка:
Люди!!!
Помогите понять!!!

Всё происходит в C++ Builder v6.0
организую сокет с помощью функции
SOCKET socket (
int af,
int type,
int protocol
);
Эта функция возвращают некий SOCKET, который является ничем иным как unsigned int. (Если я павильно понимаю).
Однако потом хочется с этим SOCKET что-нибудь сделать, например — изменить timeout. Для этого существуют функции такие как GetCommTimeouts и SetCommTimeouts, которыми и хочестя воспользоваться.
Однако они в своём вызове требуют некий HANDLE hFile. Насколько понимаю, тут то и надо указать ранее сформированный SOCKET. Однако вот ведь незадача — этот SOCKET — unsigned int, а HANDLE — void *.
И как получить из одного другое — не понимаю. Наверняка между ними что-то надо сделать, но что?
Re: Как связать SOCKET и Handle?
От: defrag  
Дата: 26.09.05 10:26
Оценка:
Тебе нужно использовать setsockopt с параметрами SO_RCVTIMEO или SO_SNDTIMEO, но работать будет только в WinSock 2 и только если сокет блокирующий
Re: Как связать SOCKET и Handle?
От: aik Австралия  
Дата: 26.09.05 10:37
Оценка:
Здравствуйте, Шурик П., Вы писали:

ШП>Люди!!!

ШП>Помогите понять!!!
ШП> Всё происходит в C++ Builder v6.0
ШП> организую сокет с помощью функции
ШП>SOCKET socket (
ШП> int af,
ШП> int type,
ШП> int protocol
ШП> );
ШП> Эта функция возвращают некий SOCKET, который является ничем иным как unsigned int. (Если я павильно понимаю).
ШП> Однако потом хочется с этим SOCKET что-нибудь сделать, например — изменить timeout. Для этого существуют функции такие как GetCommTimeouts и SetCommTimeouts, которыми и хочестя воспользоваться.
ШП> Однако они в своём вызове требуют некий HANDLE hFile. Насколько понимаю, тут то и надо указать ранее сформированный SOCKET. Однако вот ведь незадача — этот SOCKET — unsigned int, а HANDLE — void *.
ШП> И как получить из одного другое — не понимаю. Наверняка между ними что-то надо сделать, но что?



Это разного рода хандлы, так же отличаются, как хандлы HANDLE и HWND.
Set/GetCommTimeouts — это для com-портов, а тебе про setsockopt читать надо.
Re[2]: Как связать SOCKET и Handle?
От: Шурик П. Россия  
Дата: 26.09.05 12:41
Оценка:
aik>Это разного рода хандлы, так же отличаются, как хандлы HANDLE и HWND.
aik>Set/GetCommTimeouts — это для com-портов, а тебе про setsockopt читать надо.

Thanks!!!
И заодно, можете ссылкой поделится, где почитать про всё это безобразие с разьяснением для идиотов вроде меня, а то чувствую, что совсем ни хрена не понимаю
Re[3]: Как связать SOCKET и Handle?
От: aik Австралия  
Дата: 26.09.05 12:52
Оценка:
Здравствуйте, Шурик П., Вы писали:

aik>>Это разного рода хандлы, так же отличаются, как хандлы HANDLE и HWND.

aik>>Set/GetCommTimeouts — это для com-портов, а тебе про setsockopt читать надо.

ШП> Thanks!!!

ШП> И заодно, можете ссылкой поделится, где почитать про всё это безобразие с разьяснением для идиотов вроде меня, а то чувствую, что совсем ни хрена не понимаю

MSDN и читай. В индексе ищешь функцию, открывается статья, затем в тулбаре кнопку locate, слева окроется ветка в дереве и там с нужного тебе узла начинаешь читать все подряд.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.