Re: fprintf && write

From
Igor Sysoev ()
To
Boris Rudakov ()
Date
2003-06-09T23:16:54Z
Area
CARBON.COPY
 * Forwarded from area 'RU.UNIX.PROG'
From: Igor Sysoev <is@rambler-co.ru>

Boris Rudakov <Boris.Rudakov@p4.f9.n5054.z2.fidonet.org> wrote:

> НЕ НАДО без КРАЙНЕЙ необходимости юзать WSAxxx функции.

> В своем таком
> НТевом коде я избегаю даже "канонизированных" send/recv, используя
> фундаментальные ReadFile/WriteFile.
> 
> Возвращаясь к сокетам, хочу заметить что в НТе "unix-compatible" функции -
> врапперы над фундаментальными функциями API, а WSAxxx - врапперы над врапперами
> :) Дерьмо, одним словом :)

А вот в cамом конце восьмой главы первого издания "Network
programming for Microsoft Windows" на этот счёт сказано совершенно
обратное:

On a final note, Winsock applications should not use the ReadFile
and WriteFile Win32 functions for processing I/O on a completion
port in Winsock. These functions do feature an OVERLAPPED structure
and can be successfully used on a completion port; however,
the WSARecv and WSASend functions are better optimized for processing
I/O in Winsock 2. Using ReadFile and WriteFile involves making many
more unnecessary kernel/user mode procedure call transitions, thread
context switches, and parameter marshaling, resulting in a significant
performance penalty.

И потом, я как-то не понимаю, как WSARecv может быть враппером над
ReadFile, когда WSARecv и WSPRecv умеют gather, а находящийся между
ними ReadFile - нет.


-- 
Игорь Сысоев
http://sysoev.ru
--- ifmail v.2.15dev5
 * Origin: Rambler Office news site (2:5020/400)