embox

Форк
0
/
simple-connect.pkt 
47 строк · 1.7 Кб
1
// A simple client-side HTTP-style test that does a connect, sends a
2
// short request, and receives a short response.
3
/*
4
// Create a socket and set it to non-blocking.
5
0.000 socket(..., SOCK_STREAM, IPPROTO_TCP) = 3
6
0.000 fcntl(3, F_GETFL) = 0x2 (flags O_RDWR)
7
0.000 fcntl(3, F_SETFL, O_RDWR|O_NONBLOCK) = 0
8

9
// Establish connection and verify that there was no error.
10
0.100 connect(3, ..., ...) = -1 EINPROGRESS (Operation now in progress)
11
0.100 > S 0:0(0) <mss 1460,sackOK,TS val 100 ecr 0,nop,wscale 6>
12
0.200 < S. 0:0(0) ack 1 win 5792 <mss 1460,sackOK,TS val 700 ecr 100,nop,wscale 7>
13
0.200 > . 1:1(0) ack 1 <nop,nop,TS val 200 ecr 700>
14
0.200 getsockopt(3, SOL_SOCKET, SO_ERROR, [0], [4]) = 0
15
0.200 fcntl(3, F_SETFL, O_RDWR) = 0   // set back to blocking
16

17
// Send the HTTP request.
18
0.200 write(3, ..., 57) = 57
19
0.200 > P. 1:58(57) ack 1 <nop,nop,TS val 200 ecr 700>
20
0.300 < . 1:1(0) ack 58 win 92 <nop,nop,TS val 800 ecr 200>
21

22
// Receive the HTTP response and the server's FIN.
23
0.300 < P. 1:786(785) ack 58 win 92 <nop,nop,TS val 800 ecr 200>
24
0.300 > . 58:58(0) ack 786 <nop,nop,TS val 300 ecr 800>
25
0.300 < F. 786:786(0) ack 58 win 92 <nop,nop,TS val 800 ecr 200>
26
0.300 read(3, ..., 1024) = 785
27
0.300 read(3, ..., 1024) = 0
28
// Delayed ACK.
29
0.340 > . 58:58(0) ack 787 <nop,nop,TS val 300 ecr 800>
30

31
// Close the connection.
32
0.350 close(3) = 0
33
0.350 > F. 58:58(0) ack 787 <nop,nop,TS val 300 ecr 800>
34
0.450 < . 787:787(0) ack 59 win 92 <nop,nop,TS val 900 ecr 300>
35
*/
36

37
// Create a socket.
38
0.000 socket(..., SOCK_STREAM, IPPROTO_TCP) = 3
39

40
0.100...0.200 connect(3, ..., ...) = 0
41

42
// Establish a connection.
43
0.100 > S  0:0(0) win 16384 <mss 16396,nop,wscale 7>
44
0.200 < S. 0:0(0) ack 1 win 16384 <mss 16396,nop,wscale 7>
45
0.200 > .  1:1(0) ack 1
46

47
0.300 close(3) = 0
48

Использование cookies

Мы используем файлы cookie в соответствии с Политикой конфиденциальности и Политикой использования cookies.

Нажимая кнопку «Принимаю», Вы даете АО «СберТех» согласие на обработку Ваших персональных данных в целях совершенствования нашего веб-сайта и Сервиса GitVerse, а также повышения удобства их использования.

Запретить использование cookies Вы можете самостоятельно в настройках Вашего браузера.