Ejemplo n.º 1
0
Archivo: hw6.c Proyecto: lfcmpi/UIC
int rel_close(int sock) {

	// an empty packet signifies end of file
	rel_send(sock,0,0);
	
	while(packets_outstanding > 0) {
		wait_for_ack(sock);
	}

	fprintf(stderr,"\nSent EOF. Now in final wait state.\n");

	struct timeval t;
	t.tv_sec = 2;
	t.tv_usec = 0;

	setsockopt(sock, SOL_SOCKET, SO_RCVTIMEO, &t, sizeof(t));
	int wait_start = current_msec();
	
	// wait for 5 seconds
	while(current_msec() - wait_start < 5000) {		
		rel_recv(sock,0,0);
	}

	close(sock);
}
Ejemplo n.º 2
0
int rel_close(int sock) {
    fprintf(stderr, "<SHUBHAM>, rel_close called.\n");
    fprintf(stderr, "<SHUBHAM>, rel_close: sending close and waiting for ack of close packet(packet_len = 0).\n");

    if(user == SENDER){
        // an empty packet signifies end of file
        rel_send(sock,0,0);
    }

	fprintf(stderr,"\nSent EOF. Now in final wait state.\n");
    fprintf(stderr, "<SHUBHAM>, rel_close: rel_send ended, waiting for 2 more seconds to process close packet.\n");

    fprintf(stderr, "<SHUBHAM>, rel_close: exiting\n");

	close(sock);
}
Ejemplo n.º 3
0
int rel_close(int sock) {
	rel_send(sock, 0, 0); // send an empty packet to signify end of file
	close(sock);
}