Client
No notes
Syntax:
Python
import socket import time class Client(): clientSocket = socket.socket(socket.AF_INET, socket.SOCK_DGRAM) serverAddress = 'localhost' serverPort = int(9999) file = '' def __init__(self, mode, file): self.file = file self.sendRequest(mode) def sendRequest(self, mode): if mode == "RRQ": self.sendRRQ() elif mode == "WRQ": self.sendWRQ() else: print(mode, "Unknown operation mode.") def sendWRQ(self): request = 'WRQ-' + self.file self.clientSocket.sendto(str(request).encode(), (self.serverAddress, self.serverPort)) self.sendData() def sendData(self): with open(self.file, "rb") as data: while True: packet = data.read(512) if packet != b"": self.clientSocket.sendto(packet, (self.serverAddress, self.serverPort)) else: self.clientSocket.sendto(packet, (self.serverAddress, self.serverPort)) break time.sleep(0.0005) def sendRRQ(self): request = 'RRQ-' + self.file self.clientSocket.sendto(str(request).encode(), (self.serverAddress, self.serverPort)) if self.receiveResponse(): self.receiveData() def receiveResponse(self): response, server = self.clientSocket.recvfrom(512) if(str(response).__contains__("ERROR")): print(response) return False self.clientSocket.close() else: return True def receiveData(self): data = open("new.jpg", "wb") while True: packet, server = self.clientSocket.recvfrom(512) if packet.__len__() == 512: data.write(packet) else: data.write(packet) break c = Client("WRQ", "img.jpg")