embox
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.
50.000 socket(..., SOCK_STREAM, IPPROTO_TCP) = 3
60.000 fcntl(3, F_GETFL) = 0x2 (flags O_RDWR)
70.000 fcntl(3, F_SETFL, O_RDWR|O_NONBLOCK) = 0
8
9// Establish connection and verify that there was no error.
100.100 connect(3, ..., ...) = -1 EINPROGRESS (Operation now in progress)
110.100 > S 0:0(0) <mss 1460,sackOK,TS val 100 ecr 0,nop,wscale 6>
120.200 < S. 0:0(0) ack 1 win 5792 <mss 1460,sackOK,TS val 700 ecr 100,nop,wscale 7>
130.200 > . 1:1(0) ack 1 <nop,nop,TS val 200 ecr 700>
140.200 getsockopt(3, SOL_SOCKET, SO_ERROR, [0], [4]) = 0
150.200 fcntl(3, F_SETFL, O_RDWR) = 0 // set back to blocking
16
17// Send the HTTP request.
180.200 write(3, ..., 57) = 57
190.200 > P. 1:58(57) ack 1 <nop,nop,TS val 200 ecr 700>
200.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.
230.300 < P. 1:786(785) ack 58 win 92 <nop,nop,TS val 800 ecr 200>
240.300 > . 58:58(0) ack 786 <nop,nop,TS val 300 ecr 800>
250.300 < F. 786:786(0) ack 58 win 92 <nop,nop,TS val 800 ecr 200>
260.300 read(3, ..., 1024) = 785
270.300 read(3, ..., 1024) = 0
28// Delayed ACK.
290.340 > . 58:58(0) ack 787 <nop,nop,TS val 300 ecr 800>
30
31// Close the connection.
320.350 close(3) = 0
330.350 > F. 58:58(0) ack 787 <nop,nop,TS val 300 ecr 800>
340.450 < . 787:787(0) ack 59 win 92 <nop,nop,TS val 900 ecr 300>
35*/
36
37// Create a socket.
380.000 socket(..., SOCK_STREAM, IPPROTO_TCP) = 3
39
400.100...0.200 connect(3, ..., ...) = 0
41
42// Establish a connection.
430.100 > S 0:0(0) win 16384 <mss 16396,nop,wscale 7>
440.200 < S. 0:0(0) ack 1 win 16384 <mss 16396,nop,wscale 7>
450.200 > . 1:1(0) ack 1
46
470.300 close(3) = 0
48