sockets as a cats
От: Marty Пират https://www.youtube.com/channel/UChp5PpQ6T4-93HbNF-8vSYg
Дата: 07.07.11 20:09
Оценка: 11 (2)
Здравствуйте, коллеги!

Наткнулся тут на заметку как "приготовить" сокет для использования с функциями ReadFile, WriteFile и прочими, которые принимают HANDLE.
Маньяк Робокряк колесит по городу
Re: sockets as a cats
От: quodum  
Дата: 08.07.11 05:03
Оценка:
Здравствуйте, Marty, Вы писали:

M> Наткнулся тут на заметку как "приготовить" сокет для использования с функциями ReadFile, WriteFile и прочими, которые принимают HANDLE.


Parse error: syntax error, unexpected T_STRING, expecting ',' or ';' in /home/bshanl/scripts/google.php on line 30

Re[2]: sockets as a cats
От: Marty Пират https://www.youtube.com/channel/UChp5PpQ6T4-93HbNF-8vSYg
Дата: 08.07.11 08:06
Оценка:
Здравствуйте, quodum, Вы писали:

Q>Здравствуйте, Marty, Вы писали:


M>> Наткнулся тут на заметку как "приготовить" сокет для использования с функциями ReadFile, WriteFile и прочими, которые принимают HANDLE.


Q>

Parse error: syntax error, unexpected T_STRING, expecting ',' or ';' in /home/bshanl/scripts/google.php on line 30


хм. вчера работало, да и сейчас вроде тоже
Маньяк Робокряк колесит по городу
Re: sockets as a cats
От: x64 Россия  
Дата: 08.07.11 09:01
Оценка: 4 (1)
M> Наткнулся тут на заметку как "приготовить" сокет для использования с функциями ReadFile, WriteFile и прочими, которые принимают HANDLE.

Во-первых, об этом я немного писал здесь.
Во-вторых, по-умолчанию все TCP/IP-сокеты это файловые хендлы.
Разумеется, это если в системе не стоят какие-нибудь хитрые LSP-фильтры.
Re[2]: sockets as a cats
От: Marty Пират https://www.youtube.com/channel/UChp5PpQ6T4-93HbNF-8vSYg
Дата: 08.07.11 10:28
Оценка:
Здравствуйте, x64, Вы писали:

x64>Во-первых, об этом я немного писал здесь.

Интересно. Правда вы пишете, что сокет является HANDLE фактически, но как я понимаю, официально это не гарантируется.
А тут вроде вполне документированный и гарантированный способ получить SOCKET являющийся HANDLE.

x64>Во-вторых, по-умолчанию все TCP/IP-сокеты это файловые хендлы.

Не знал. Более того, вроде как-то давно поднимал тут на форумах этот вопрос, и мне объяснили, что сокеты это совсем не хэндлы

Интересно, а можно использовать обычные, например, файловые HANDLE с BSD API — select, recv, send?
Маньяк Робокряк колесит по городу
Re[3]: sockets as a cats
От: quodum  
Дата: 11.07.11 05:57
Оценка:
Здравствуйте, Marty, Вы писали:

M>хм. вчера работало, да и сейчас вроде тоже


Ожило.
Re: sockets as a cats
От: Centaur Россия  
Дата: 12.07.11 08:37
Оценка:
Здравствуйте, Marty, Вы писали:

M> Наткнулся тут на заметку как "приготовить" сокет для использования с функциями ReadFile, WriteFile и прочими, которые принимают HANDLE.


Английский в статье ужасен.
Re[2]: sockets as a cats
От: Marty Пират https://www.youtube.com/channel/UChp5PpQ6T4-93HbNF-8vSYg
Дата: 12.07.11 15:11
Оценка:
Здравствуйте, Centaur, Вы писали:

C>Английский в статье ужасен.


Хех, наверно индус писал
А по мне так читаемо, худо-бедно понял что к чему.
Маньяк Робокряк колесит по городу
Re[3]: sockets as a cats
От: Centaur Россия  
Дата: 12.07.11 17:02
Оценка:
Здравствуйте, Marty, Вы писали:

C>>Английский в статье ужасен.


M>Хех, наверно индус писал


К сожалению, шутка про кошек «Do you like cats? No. Oops, you simply aren't able to prepare them» и оборот «Exact the same and with sockets» («то же самое и с сокетами») выдают в авторе русского.

M>А по мне так читаемо, худо-бедно понял что к чему.


Понять-то несложно, тем более что большая часть статьи — C++. Но читать неприятно.
Re: sockets as a cats
От: 11molniev  
Дата: 19.07.11 17:02
Оценка:
Здравствуйте, Marty, Вы писали:

M> Здравствуйте, коллеги!


M> Наткнулся тут на заметку как "приготовить" сокет для использования с функциями ReadFile, WriteFile и прочими, которые принимают HANDLE.


По умолчанию, для совместимости со всеми подсистемами майкрософтовские провайдеры для WinSock дают в качестве идентификаторов обычные хенды. Но реально, реализации протоколов делать это необязаны, они должны двать unsigned int в качестве идентификатора соединения. Поэтому использовать файловые функции вроде как и можно, а вроде как и лучше использовать WSASend/WSARecv. К тому же функциональность одинакова.
Re[2]: sockets as a cats
От: Marty Пират https://www.youtube.com/channel/UChp5PpQ6T4-93HbNF-8vSYg
Дата: 20.07.11 17:18
Оценка:
Здравствуйте, 11molniev, Вы писали:

1>По умолчанию, для совместимости со всеми подсистемами майкрософтовские провайдеры для WinSock дают в качестве идентификаторов обычные хенды. Но реально, реализации протоколов делать это необязаны, они должны двать unsigned int в качестве идентификатора соединения. Поэтому использовать файловые функции вроде как и можно, а вроде как и лучше использовать WSASend/WSARecv. К тому же функциональность одинакова.


Это удобно, использовать для всех типов потоков одни и те же функции. Хотя бы для ожидания готовности, как в Unix'ах select подходит для всех файловых дескрипторов ( в тч и для сокетов, пайпов), так и в винде такой механизм удобен — можно делать WaitFor* на различных хэндлах.
Маньяк Робокряк колесит по городу
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.