From 357fe7ceed7c2cf00cbe1b26e19cd2b9fde51aab Mon Sep 17 00:00:00 2001
From: Guo Wenxue <guowenxue@gmail.com>
Date: Wed, 24 Oct 2018 20:15:02 +0800
Subject: [PATCH] update socket_server.c, fix   Address already in use bug, setsockopt must put b4 bind

---
 apue/2.Socket/socket_server.c |    6 +++---
 1 files changed, 3 insertions(+), 3 deletions(-)

diff --git a/apue/2.Socket/socket_server.c b/apue/2.Socket/socket_server.c
index 53f7ea4..a1f2bbc 100644
--- a/apue/2.Socket/socket_server.c
+++ b/apue/2.Socket/socket_server.c
@@ -45,6 +45,9 @@
     }
     printf("socket create fd[%d]\n", listen_fd);
 
+    /* Fix port can not be used when stop server program and run it again immediately.*/
+    setsockopt(listen_fd, SOL_SOCKET, SO_REUSEADDR, &reuse, sizeof(reuse));
+
     memset(&serv_addr, 0, sizeof(serv_addr));
     serv_addr.sin_family = AF_INET;        
     serv_addr.sin_port = htons(LISTEN_PORT);
@@ -55,9 +58,6 @@
         return -2;
     }
     printf("socket[%d] bind on port[%d] for all IP address ok\n", listen_fd, LISTEN_PORT);
-
-    /* Fix port can not be used when stop server program and run it again immediately.*/
-    setsockopt(listen_fd, SOL_SOCKET, SO_REUSEADDR, &reuse, sizeof(reuse));
 
     listen(listen_fd, BACKLOG); 
     

--
Gitblit v1.9.1