Komunikace pres SOCKET

Pavel Kankovsky peak na argo.troja.mff.cuni.cz
Pátek Březen 24 09:58:19 CET 2000


On Fri, 24 Mar 2000, Nehasil Petr wrote:

> > write (socket, zprava, strlen(zprava)+1);
> 
> Delka je omezena. Dost se to vymstilo pri posilani obrazku. Preneslo
> se jen prvnich 64KB.Nicmene ani to neni zaruceno. Je treba si hlidat
> kolik se opravdu preneslo - to vrati write

To neni tak uplne pravda. Zalezi na dvou faktorech:
1. je to SOCK_STREAM nebo SOCK_DGRAM?
2. je blocking nebo non-blocking?

Do blocking SOCK_STREAMu muzete nacpat treba dvacet mega a on to tam
poslusne nacpe (pokud mezitim nespadne spojeni), akorat si budete muset
pockat, nez to skonci.

Nicmene stejne je robustnejsi udelat smycku, ktera pripadne write() spusti
znova, dokud nevrati nejakou opravdovou chybu, treba kvuli tomu, ze ho (za
urcitych okolnosti) muzou prerusit i signaly.

--Pavel Kankovsky aka Peak  [ Boycott Microsoft--http://www.vcnet.com/bms ]
"Resistance is futile. Open your source code and prepare for assimilation."



Další informace o konferenci Linux