回答編集履歴
1
コードが誤っていたので修正
answer
CHANGED
@@ -9,12 +9,13 @@
|
|
9
9
|
原因3 関数ntohが期待の通りに動いていない。
|
10
10
|
ntohlではないか?????
|
11
11
|
原因4 受信が分割されている。recvは取りこぼすこともある。
|
12
|
-
int
|
12
|
+
int i,r;
|
13
|
+
char *p = (char *)tmp;
|
13
|
-
for (
|
14
|
+
for ( i = 0 ; i < 16 ; ){
|
14
|
-
if (
|
15
|
+
if ((r = recv(socket, p+i, 16-i, 0)) < 0) {
|
15
16
|
perror("ID ERROR");
|
16
17
|
} else {
|
17
|
-
|
18
|
+
i += r;
|
18
19
|
}
|
19
20
|
}
|
20
21
|
として、取りこぼしをなくす。
|