Skip to content

Commit 76a48a0

Browse files
authored
🍕 tcp_client、tcp_server 禁用 NAGLE 算法 (#47)
1 parent a14438c commit 76a48a0

File tree

4 files changed

+18
-5
lines changed

4 files changed

+18
-5
lines changed

src/builtin/tcp_client.c

Lines changed: 8 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,7 @@ int main(int argc, char const *argv[])
2121
return fd;
2222
}
2323

24-
inet_aton("192.168.111.33", addr.addr);
24+
inet_aton("172.16.16.11", addr.addr);
2525
addr.family = AF_INET;
2626
addr.port = htons((u16)time());
2727

@@ -36,13 +36,18 @@ int main(int argc, char const *argv[])
3636
if (ret < EOK)
3737
goto rollback;
3838

39-
inet_aton("192.168.111.1", addr.addr);
39+
ret = setsockopt(fd, SOL_SOCKET, SO_TCP_NODELAY, &val, 4);
40+
printf("socket nodelay %d\n", ret);
41+
if (ret < EOK)
42+
goto rollback;
43+
44+
inet_aton("172.16.16.1", addr.addr);
4045
addr.family = AF_INET;
4146
addr.port = htons(7777);
4247
ret = connect(fd, (sockaddr_t *)&addr, sizeof(sockaddr_in_t));
4348
printf("socket connect %d\n", ret);
4449

45-
sleep(10000);
50+
sleep(1000);
4651

4752
int len = sprintf(tx_buf, "hello tcp server %d", time());
4853
send(fd, tx_buf, len, 0);

src/builtin/tcp_server.c

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -46,6 +46,14 @@ int main(int argc, char const *argv[])
4646
}
4747
printf("socket acccept %d\n", client);
4848

49+
int opt=1;
50+
ret=setsockopt(client,SOL_SOCKET,SO_TCP_NODELAY,&opt,4);
51+
if (ret < 0)
52+
{
53+
printf("set nodelay error.\n");
54+
goto rollback;
55+
}
56+
4957
int len = sprintf(tx_buf, "hello tcp client %d", time());
5058
send(client, tx_buf, len, 0);
5159

src/utils/network.conf

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,3 @@
11
ipaddr=172.16.16.11
2-
netmask=255.255.0.0
2+
netmask=255.255.255.0
33
gateway=172.16.16.1

tests/net/tcp_client.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33

44
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
55
s.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1)
6-
s.connect(('192.168.111.33', 6666))
6+
s.connect(('172.16.16.11', 6666))
77

88
data = s.recv(1024)
99
print(data.decode())

0 commit comments

Comments
 (0)