Hi,

I had a question regarding non-blocking read in a TCP socket program.
I have the code below.

The non-blocking code works, but, I see that the "perror("Read");" in my
server returns "Resource temporarily unavailable" instead of "success".
Is this normal?

Also, when my client closes the connection, I do not get "Connection reset
by peer" at my server. This happens for both blocked read and non-block
read. In this case, the server reads 0 bytes and goes into a infinite
loop. Shouldn't I get a ECONNRESET in this case?

TIA,
Pramodh

server code
-----------------
        newsockfd = accept(sockfd,(struct sockaddr *)&client,&clilen);
        ioctl(newsockfd, FIONBIO, (char *)&arg);
        while (1) {
                if ((len = read(newsockfd, buff, 2)) < 0) {
                        perror("Read error:");
                        sleep(2);
                        continue;
                }
                perror("Read");
        }
-------------------------------

client code
---------------------
        connect(sockfd,(struct sockaddr *)&server,sizeof(struct sockaddr_in));
        writes 5 times {
                len = write(sockfd,buff,10);
                sleep(5);
        }
---------------------------------

-
To unsubscribe from this list: send the line "unsubscribe linux-net" in
the body of a message to [EMAIL PROTECTED]

Reply via email to