Mail Archives: cygwin/2000/12/08/12:13:23
--z1KCTocaUN
Content-Type: text/plain; charset=us-ascii
Content-Description: message body text
Content-Transfer-Encoding: 7bit
Hi,
Corinna Vinschen writes:
> AFAICS, the problem is that you rely on the speed of the connection.
> The `read' call on the socket returning only 5 bytes while you're
> expecting 10 is doing nothing wrong. Let me explain:
>
I have to keep on apologizing. I messed up the testcase that I
sent. While it nicely demonstrated the speed gains in the socket
communication that you thoroughly described, the files were wrong.
> So, your `read' code should not look like this:
>
> read(sockfd, chin, 10);
>
> but rather look like that (assuming you expect receiving 10 bytes):
>
> len = 0;
> do {
> i = read(sockfd, chin + len, 10);
> } while (i > 0 && (len += i) < 10);
>
This is what I *intended* to do. The example should use iread()
instead of read() and iwrite() instead of write(). Those wrappers do
something like you suggest, but they will eventually time out in case
of network problems instead of looping forever. The funny thing is,
that with these wrappers in place my "testcase" fails to demonstrate
the problem :-/
So I started to prune back my original app and to extend the testcase
until somewhere the problem goes away or appears, respectively. It
turns out that I need to let the server fork in order to show the
problem. Please find the modified 3kb testcase attached (I am down on
my knees praying that it's correct this time). The only changes to the
previous version are:
client: actually calls the wrappers instead of calling read()/write()
server: actually calls the wrappers instead of calling read()/write()
forks before handling the client request.
The screenshots look like this:
cygwin1.dll 1.1.4:
$ ./server5b &
[1] 1006
mhoenicka AT GIRCH19 ~/prog/socket
$ server waiting
./client3a
char to server = 123456789
adding client on fd 4
server waiting
iwrite:10<<
parent done on fd 4
server waiting
iread:10<<
child serving client on fd 4; ch=123456789<<
iwrite:5<<
iwrite:5<<
client: error 0
iread:10<<
char from server = 223456789
child done on fd 4; ch=223456789<<
cygwin1.dll 1.1.6:
$ ./server5b &
[1] 299
mhoenicka AT GIRCH19 ~/prog/socket
$ server waiting
$ ./client3a
char to server = 123456789
adding client on fd 4
server waiting
iwrite:10<<
parent done on fd 4
server waiting
iread:10<<
child serving client on fd 4; ch=123456789<<
iwrite:5<<
iwrite:5<<
child done on fd 4; ch=223456789<<
client: Connection reset by peer
iread:5<<
char from server = 2234500000
so here we go again with the "connection reset" problem.
As far as I understand your explanations I should get a different
error if this again would be a timing problem (e.g. EINTR) in spite of
the wrappers that should prevent exactly this. BTW those wrappers are
almost identical to functions in GNU wget so I think they're not
bogus.
Again, your help is greatly appreciated.
Markus
--z1KCTocaUN
Content-Type: application/x-gzip
Content-Description: sockettest1.tar.gz
Content-Disposition: attachment;
filename="sockettest1.tar.gz"
Content-Transfer-Encoding: base64
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
--z1KCTocaUN
Content-Type: text/plain; charset=us-ascii
Content-Description: .signature
Content-Transfer-Encoding: 7bit
--
Markus Hoenicka, PhD
UT Houston Medical School
Dept. of Integrative Biology and Pharmacology
6431 Fannin MSB4.114
Houston, TX 77030
(713) 500-6313, -7477
(713) 500-7444 (fax)
Markus DOT Hoenicka AT uth DOT tmc DOT edu
http://ourworld.compuserve.com/homepages/hoenicka_markus/
--z1KCTocaUN
Content-Type: text/plain; charset=us-ascii
--
Want to unsubscribe from this list?
Send a message to cygwin-unsubscribe AT sourceware DOT cygnus DOT com
--z1KCTocaUN--
- Raw text -