tarfeef101 6 years ago
parent
commit
8151249fd7
1 changed files with 7 additions and 6 deletions
  1. 7 6
      a2/sender.py

+ 7 - 6
a2/sender.py

@@ -42,7 +42,7 @@ while(True):
         break
     packets.append(packet.create_packet(total_packets, string))
     total_packets += 1
-    
+   
 # make winsize not bigger than the file allows
 winsize = min(winsize, total_packets)
 
@@ -64,7 +64,7 @@ def receiver():
         lock.acquire()
         # what type is this?
         if (newpacket.type == 2): # EOT
-            acklog.write(str(newpacket.seq_num + "\n"))
+            acklog.write(str(newpacket.seq_num) + "\n")
             lock.release()
             return
         elif (newpacket.type == 1): # data
@@ -73,12 +73,13 @@ def receiver():
             raise SystemExit
         else: # ACK packet
             acklog.write(str(newpacket.seq_num) + "\n")
-            print("snum: ", newpacket.seq_num, "confirmed: ", confirmed)
-            if (newpacket.seq_num > confirmed): # new ACK
-                confirmed = seq_num + 1
+            if (newpacket.seq_num >= confirmed): # new ACK
+                confirmed = newpacket.seq_num + 1
                 waking = True
                 cv.notify_all()
             
+            lock.release()
+            
         
 
 recthread = threading.Thread(target=receiver, args=())
@@ -97,7 +98,7 @@ while (confirmed < total_packets):
         
     # use cv to sleep for 0.2s, or if woken up
     cv.wait(tmout) # we get lock back when this returns
-    
+ 
     # check if we woke from timer or not (status of waking flag)
     # this means we were woken by an ACK.
     if (waking):