Главная страница


ru.nethack

 
 - RU.NETHACK -------------------------------------------------------------------
 From : Dmitry Radishev                      2:5015/42      26 Jul 2002  18:45:13
 To : 3APA3A
 Subject : прокси
 -------------------------------------------------------------------------------- 
 
 
 Friday July 26 2002 11:51, 3APA3A wrote to Dmitry Radishev:
 
  DR>> устраивает? Заменяем read/write на recv/send соответственно, и
  DR>> смотрим что получилось...
 
  AA> А ничего не получилось. В Windows send/recv всегда блокирующие (потому
  AA> как fcntl там тоже нет :)) ), придется select использовать. Собственно
  AA> это тоже не сложно.
 
  Хм. Читаем документацию по winsock 1.1 (2.0 под рукой нет, но и этой
 достаточно). fcntl() действительно нет (ну так и fork() в виндах нет - но это
 же не трагедия), но есть возможность загнать сокет в неблокирующий режим:
 
  === End Windows Clipboard ===
   int PASCAL FAR ioctlsocket ( SOCKET s, long cmd, u_long FAR * argp );
 
 [ ..погрызено.. ]
 
 Command Semantics
 
 FIONBIO Enable or disable non-blocking mode on the socket s.  argp points at an
 unsigned long, which is non-zero if non-blocking mode is to be enabled and zero
 if it is to be disabled.  When a socket is created, it operates in blocking
 mode (i.e. non-blocking mode is disabled).  This is consistent with BSD
 sockets.
  === End Windows Clipboard ===
 
  И комментарий к send() (аналогичный идет у recv()) на тему поведения при
 non-blocking i/o.
 
  === Begin Windows Clipboard ===
   int PASCAL FAR send ( SOCKET s, const char FAR * buf, int len, int flags );
 
  [ ..погрызено.. ]
 
  If no buffer space is available within the transport system to hold the data
 to be transmitted, send() will block unless the socket has been placed in a
 non-blocking I/O mode.  On non-blocking SOCK_STREAM sockets, the number of
 bytes written may be between 1 and the requested length, depending on buffer
 availability on both the local and foreign hosts.  The select() call may be
 used to determine when it is possible to send more data.
 
  [ ..погрызено.. ]
 
 WSAEWOULDBLOCK The socket is marked as non-blocking and the requested operation
 would block.
  === End Windows Clipboard ===
 
  Так что "всегда блокирующие" - это кажимость :-)
 
 All the best //DiBR                        [TEAM ВСЕ МАСТДАЙ] [шестая базовая]
                                                          [http://dibr.nnov.ru]
 
 --- [LPT] LaMerZ PrOfeSsIoNaL TeaM  /member/
  * Origin: Ты еще не убил своего Томагоччи? Сделай это сегодня! (2:5015/42)
 
 

Вернуться к списку тем, сортированных по: возрастание даты  уменьшение даты  тема  автор 

 Тема:    Автор:    Дата:  
 прокси   Dmitry Radishev   25 Jul 2002 20:56:44 
 Re: прокси   3APA3A   26 Jul 2002 12:51:11 
 Re: прокси   3APA3A   26 Jul 2002 15:19:33 
 Re: прокси   Dmitry Korolev   03 Aug 2002 22:18:14 
 прокси   Dmitry Radishev   26 Jul 2002 18:45:13 
 Re: прокси   3APA3A   27 Jul 2002 14:41:57 
Архивное /ru.nethack/18153d41a8f6.html, оценка 2 из 5, голосов 10
Яндекс.Метрика
Valid HTML 4.01 Transitional