要在下面这段代码中找出10个bug,你能做到么?
1
#include
<
sys
/
types.h
>
2 #include < sys / socket.h >
3
4 const int PORT_NUM = 10000 ;
5
6 int echo_server ()
7 {
8 struct sockaddr_in addr;
9 int addr_len;
10 char buf[BUFSIZ];
11 int n_handle;
12 // Create the local endpoint.
13 int s_handle = socket (PFJJNIX, SOCK_DGRAM, 0 );
14 if (s_handle == - 1 ) return - 1 ;
15
16 // Set up the address information where the server listens.
17 addr.sin_family = AF_INET;
18 addr.sin_port = PORT_NUM;
19 addr.sin_addr.addr = INADDR_ANY;
20
21 if (bind (s_handle, ( struct sockaddr * ) & addr,
22 sizeof addr) == - 1 )
23 return - 1 ;
24
25 // Create a new communication endpoint.
26 if (n_handle = accept (s_handle, ( struct sockaddr * ) & addr,
27 & addr_len) != - 1 ) {
28 int n;
29 while ((n = read (s_handle, buf, sizeof buf}) > 0 )
30 write (n_handle, buf, n);
31
32 close (n_handle);
33 }
34 return 0 ;
35 }
2 #include < sys / socket.h >
3
4 const int PORT_NUM = 10000 ;
5
6 int echo_server ()
7 {
8 struct sockaddr_in addr;
9 int addr_len;
10 char buf[BUFSIZ];
11 int n_handle;
12 // Create the local endpoint.
13 int s_handle = socket (PFJJNIX, SOCK_DGRAM, 0 );
14 if (s_handle == - 1 ) return - 1 ;
15
16 // Set up the address information where the server listens.
17 addr.sin_family = AF_INET;
18 addr.sin_port = PORT_NUM;
19 addr.sin_addr.addr = INADDR_ANY;
20
21 if (bind (s_handle, ( struct sockaddr * ) & addr,
22 sizeof addr) == - 1 )
23 return - 1 ;
24
25 // Create a new communication endpoint.
26 if (n_handle = accept (s_handle, ( struct sockaddr * ) & addr,
27 & addr_len) != - 1 ) {
28 int n;
29 while ((n = read (s_handle, buf, sizeof buf}) > 0 )
30 write (n_handle, buf, n);
31
32 close (n_handle);
33 }
34 return 0 ;
35 }