SYN ACK reçu mais pas encore ACK
This commit is contained in:
parent
ba1b549339
commit
8ddf0620a9
11 changed files with 8 additions and 4 deletions
BIN
build/TD2_Rezo.o
BIN
build/TD2_Rezo.o
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
BIN
build/client
Normal file → Executable file
BIN
build/client
Normal file → Executable file
Binary file not shown.
BIN
build/gateway
Normal file → Executable file
BIN
build/gateway
Normal file → Executable file
Binary file not shown.
BIN
build/mictcp.o
BIN
build/mictcp.o
Binary file not shown.
BIN
build/server
Normal file → Executable file
BIN
build/server
Normal file → Executable file
Binary file not shown.
|
@ -81,6 +81,7 @@ int initialize_components(start_mode mode)
|
||||||
local_addr.sin_port = htons(API_SC_Port);
|
local_addr.sin_port = htons(API_SC_Port);
|
||||||
local_addr.sin_addr.s_addr = htonl(INADDR_ANY);
|
local_addr.sin_addr.s_addr = htonl(INADDR_ANY);
|
||||||
bnd = bind(sys_socket, (struct sockaddr *) &local_addr, sizeof(local_addr));
|
bnd = bind(sys_socket, (struct sockaddr *) &local_addr, sizeof(local_addr));
|
||||||
|
pthread_create (&listen_th, NULL, listening, "1");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
11
src/mictcp.c
11
src/mictcp.c
|
@ -120,11 +120,13 @@ int mic_tcp_connect(int socket, mic_tcp_sock_addr addr)
|
||||||
printf("Remote Address Port: %hu\n", addr.port);
|
printf("Remote Address Port: %hu\n", addr.port);
|
||||||
|
|
||||||
IP_send(pdu, tab_sockets[socket].dist_addr);
|
IP_send(pdu, tab_sockets[socket].dist_addr);
|
||||||
|
tab_sockets[socket].socket.state = SYN_SENT;
|
||||||
while (1)
|
while (1)
|
||||||
{
|
{
|
||||||
sleep(timeout);
|
sleep(timeout);
|
||||||
printf("timeout\n");
|
printf("timeout\n");
|
||||||
if (tab_sockets[socket].socket.state == WAITING)
|
printf("Socket state : %d, SYN SENT = %d\n",tab_sockets[socket].socket.state,SYN_SENT );
|
||||||
|
if (tab_sockets[socket].socket.state == SYN_SENT)
|
||||||
{
|
{
|
||||||
IP_send(pdu, tab_sockets[socket].dist_addr);
|
IP_send(pdu, tab_sockets[socket].dist_addr);
|
||||||
}
|
}
|
||||||
|
@ -165,13 +167,13 @@ int mic_tcp_send(int mic_sock, char *mesg, int mesg_size)
|
||||||
IP_send(pdu, tab_sockets[mic_sock].dist_addr);
|
IP_send(pdu, tab_sockets[mic_sock].dist_addr);
|
||||||
tab_sockets[mic_sock].NoSeqLoc = (tab_sockets[mic_sock].NoSeqLoc + 1) % 2;
|
tab_sockets[mic_sock].NoSeqLoc = (tab_sockets[mic_sock].NoSeqLoc + 1) % 2;
|
||||||
|
|
||||||
tab_sockets[mic_sock].socket.state = SYN_SENT;
|
tab_sockets[mic_sock].socket.state = WAITING;
|
||||||
int sent_size = IP_send(pdu, tab_sockets[mic_sock].dist_addr);
|
int sent_size = IP_send(pdu, tab_sockets[mic_sock].dist_addr);
|
||||||
|
|
||||||
while (1)
|
while (1)
|
||||||
{
|
{
|
||||||
sleep(timeout);
|
sleep(timeout);
|
||||||
if (tab_sockets[mic_sock].socket.state == SYN)
|
if (tab_sockets[mic_sock].socket.state == WAITING)
|
||||||
{
|
{
|
||||||
sent_size = IP_send(pdu, tab_sockets[mic_sock].dist_addr);
|
sent_size = IP_send(pdu, tab_sockets[mic_sock].dist_addr);
|
||||||
}
|
}
|
||||||
|
@ -256,6 +258,7 @@ void process_received_PDU(mic_tcp_pdu pdu, mic_tcp_sock_addr addr) //addr = adre
|
||||||
|
|
||||||
tab_sockets[mic_sock].socket.state = SYN_RECEIVED;
|
tab_sockets[mic_sock].socket.state = SYN_RECEIVED;
|
||||||
|
|
||||||
|
display_mic_tcp_pdu(pdu_r, "Pdu SYN ACK : \n");
|
||||||
while (1)
|
while (1)
|
||||||
{
|
{
|
||||||
|
|
||||||
|
@ -271,7 +274,7 @@ void process_received_PDU(mic_tcp_pdu pdu, mic_tcp_sock_addr addr) //addr = adre
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else if (pdu.header.ack == 1 && pdu.header.syn && tab_sockets[mic_sock].socket.state == SYN_SENT)
|
else if (pdu.header.ack == 1 && pdu.header.syn == 1 && tab_sockets[mic_sock].socket.state == SYN_SENT)
|
||||||
{ // si SYN ACK reçu envoyer ACK
|
{ // si SYN ACK reçu envoyer ACK
|
||||||
|
|
||||||
printf("PDU SYN ACK recu\n");
|
printf("PDU SYN ACK recu\n");
|
||||||
|
|
Loading…
Reference in a new issue