diff --git a/build/TD2_Rezo.o b/build/TD2_Rezo.o index 17f3df6..9b8aceb 100644 Binary files a/build/TD2_Rezo.o and b/build/TD2_Rezo.o differ diff --git a/build/api/mictcp_core.o b/build/api/mictcp_core.o index 7453c0c..0f2dc91 100644 Binary files a/build/api/mictcp_core.o and b/build/api/mictcp_core.o differ diff --git a/build/apps/client.o b/build/apps/client.o index c8854f5..e6910dd 100644 Binary files a/build/apps/client.o and b/build/apps/client.o differ diff --git a/build/apps/gateway.o b/build/apps/gateway.o index 65bfeec..5bdb278 100644 Binary files a/build/apps/gateway.o and b/build/apps/gateway.o differ diff --git a/build/apps/server.o b/build/apps/server.o index 5a7784c..428ff7d 100644 Binary files a/build/apps/server.o and b/build/apps/server.o differ diff --git a/build/client b/build/client old mode 100644 new mode 100755 index e0133ee..9bc8134 Binary files a/build/client and b/build/client differ diff --git a/build/gateway b/build/gateway old mode 100644 new mode 100755 index 1b520c2..9b3ccd9 Binary files a/build/gateway and b/build/gateway differ diff --git a/build/mictcp.o b/build/mictcp.o index 0a1ebcb..61831c3 100644 Binary files a/build/mictcp.o and b/build/mictcp.o differ diff --git a/build/server b/build/server old mode 100644 new mode 100755 index 414b5d2..1f8045f Binary files a/build/server and b/build/server differ diff --git a/src/api/mictcp_core.c b/src/api/mictcp_core.c index b55f36f..e0fa4d8 100644 --- a/src/api/mictcp_core.c +++ b/src/api/mictcp_core.c @@ -81,6 +81,7 @@ int initialize_components(start_mode mode) local_addr.sin_port = htons(API_SC_Port); local_addr.sin_addr.s_addr = htonl(INADDR_ANY); bnd = bind(sys_socket, (struct sockaddr *) &local_addr, sizeof(local_addr)); + pthread_create (&listen_th, NULL, listening, "1"); } } diff --git a/src/mictcp.c b/src/mictcp.c index 7c3ba33..30c243c 100644 --- a/src/mictcp.c +++ b/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); IP_send(pdu, tab_sockets[socket].dist_addr); + tab_sockets[socket].socket.state = SYN_SENT; while (1) { sleep(timeout); 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); } @@ -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); 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); while (1) { 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); } @@ -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; + display_mic_tcp_pdu(pdu_r, "Pdu SYN ACK : \n"); 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 printf("PDU SYN ACK recu\n");