ithewei 6 年之前
父节点
当前提交
3138927c77
共有 3 个文件被更改,包括 17 次插入11 次删除
  1. 1 1
      examples/client.cpp
  2. 6 4
      examples/server.cpp
  3. 10 6
      http/server/http_server.cpp

+ 1 - 1
examples/client.cpp

@@ -25,7 +25,7 @@ recv:
     nrecv = recv(event->fd, recvbuf, sizeof(recvbuf), 0);
     printf("recv retval=%d\n", nrecv);
     if (nrecv < 0) {
-        if (sockerrno != NIO_EAGAIN) {
+        if (sockerrno == NIO_EAGAIN) {
             //goto recv_done;
             return;
         }

+ 6 - 4
examples/server.cpp

@@ -24,7 +24,7 @@ recv:
     nrecv = recv(event->fd, recvbuf, sizeof(recvbuf), 0);
     printf("recv retval=%d\n", nrecv);
     if (nrecv < 0) {
-        if (sockerrno != NIO_EAGAIN) {
+        if (sockerrno == NIO_EAGAIN) {
             goto recv_done;
         }
         else {
@@ -64,12 +64,14 @@ accept:
     addrlen = sizeof(struct sockaddr_in);
     int connfd = accept(event->fd, (struct sockaddr*)&peeraddr, &addrlen);
     if (connfd < 0) {
-        if (sockerrno != NIO_EAGAIN) {
+        if (sockerrno == NIO_EAGAIN) {
+            //goto accept_done;
+            return;
+        }
+        else {
             perror("accept");
             goto accept_error;
         }
-        //goto accept_done;
-        return;
     }
     printf("accept connfd=%d [%s:%d] => [%s:%d]\n", connfd,
             inet_ntoa(peeraddr.sin_addr), ntohs(peeraddr.sin_port),

+ 10 - 6
http/server/http_server.cpp

@@ -90,13 +90,15 @@ recv:
     nrecv = recv(event->fd, recvbuf, sizeof(recvbuf), 0);
     //printf("recv retval=%d\n", nrecv);
     if (nrecv < 0) {
-        if (sockerrno != NIO_EAGAIN) {
+        if (sockerrno == NIO_EAGAIN) {
+            //goto recv_done;
+            return;
+        }
+        else {
             perror("recv");
             hcu->log += asprintf("recv: %s", strerror(errno));
             goto recv_error;
         }
-        //goto recv_done;
-        return;
     }
     if (nrecv == 0) {
         hcu->log += "disconnect";
@@ -261,13 +263,15 @@ accept:
     addrlen = sizeof(struct sockaddr_in);
     int connfd = accept(event->fd, (struct sockaddr*)&peeraddr, &addrlen);
     if (connfd < 0) {
-        if (sockerrno != NIO_EAGAIN) {
+        if (sockerrno == NIO_EAGAIN) {
+            //goto accept_done;
+            return;
+        }
+        else {
             perror("accept");
             hloge("accept failed: %s: %d", strerror(sockerrno), sockerrno);
             goto accept_error;
         }
-        //goto accept_done;
-        return;
     }
 
     {