def notCurrupted(rcvpkt): data = rcvpkt[1] #print(data) checksum = rcvpkt[2] rcvDataCheck = c.CHECK(data) result = c.binaryAddition(rcvDataCheck, checksum) length = len(result) for i in range(0, length): if (result[i] != "1"): return False break return True
def notCurrupted(rcvpkt): data = rcvpkt[0] #print(data) checksum = rcvpkt[1] rcvDataCheck = c.CHECK(data) result = c.binaryAddition(rcvDataCheck, checksum) length = len(result) for i in range(0, length): if (result[i] != "1"): #print("Acknowledgement is not currupted") return False break #print("Acknowledgement is not currupted") return True
Transmission = 1 condition = 0 print('''Using this Sender Application You can send any value except "0" And Enter "0" to Stop this Application''') while (Transmission): senderSeq = changeSeqNO(senderSeq) data = int( input("Enter the message for " + str(senderSeq) + " Sequence Number : ")) if (data == 0): Transmission = 0 print("Sender Application has been Stopped") break seqNumdict[senderSeq] = data condition = 1 while (condition): packet = make_pkt(senderSeq, data, c.compliment(c.CHECK(data))) udt_send(packet) message, receiver = senderSocket.recvfrom(2048) #print(message) #print(receiver) extractedAck = pickle.loads(message) if (notCurrupted(extractedAck) and isACK(extractedAck)): print("Packet " + str(senderSeq) + " Sent Successfully and Acknowledged") condition = 0 break if ((notCurrupted == False) or isNAK(extractedAck)): print("Else condition become True") condition = 1 continue
receiverSocket.bind(("127.0.0.1", 4500)) Ack = 271 #Nak=282 seq = 1 run = 1 print('''Server is Started This Server can't be stopped Normally. To Stop It you should use Keyboard Exception''') while (run): print("Server is waiting") seq = changeSeqNO(seq) #print("Data Received to the Sequence Number : "+str(seq)) dataTuple, client = receiverSocket.recvfrom(2048) extractedTuple = pickle.loads(dataTuple) if (notCurrupted(extractedTuple) and hasSequenceNo(extractedTuple, seq)): print("With the Sequence Number " + str(seq) + " Received Data is " + str(extractedTuple[1])) packet1 = createPacket(Ack, seq, c.compliment(c.CHECK(Ack))) udt_Send(packet1, client) elif (notCurrupted(extractedTuple) == "False"): if (seq == 0): nseq = 1 else: nseq = 0 packet1 = createPacket(Ack, nseq, c.CHECK(Nak)) udt_Send(packet1, client) else: #Change in the sequence number packet1 = createPacket(Ack, seq, c.compliment(c.CHECK(Ack))) udt_Send(packet1, client)