sockets - FileSharing using UDP in python -
i brand new networking , been years since ive coded in python. i'm trying create program following:
there should client program , server program. server program hosts files , responds requests files. breaks requested file segments , sends them client on udp. client program takes file name input , requests file server. programs should handle udp packet losses make sure entire file correctly received client program. code needs include implementation of alternating bit , selective repeat protocols.
the client program should print detailed information requests sent , data received @ byte level (e.g., time x received byte y z) during file download. server program should print detailed information requests received , data sent @ byte level.
at point in time i'm trying server , client "talk" speak. error
traceback (most recent call last): file "./client.py", line 52, in <module> s.bind((host,port)) oserror: [winerror 10048] 1 usage of each socket address (protocol/network address/port) permitted the commented out parts of code how attempting project realized run lot of problems. other new , still failing attempt. i'm @ wits end , ive looked everywhere can seem figure out. @ 1 point commented out version did return file contents on never ending loop , couldn't acknowledgment number , byte information each packet.
this client.py
# import socket # host ='localhost' # port = 5000 # s = socket.socket(socket.af_inet, socket.sock_dgram) # s.connect((host,port)) # s.sendto(bytes("hello server!",'utf-8'),(host,port)) # s.close # file_name=input('please enter file name wish receive(mytext): ') # s = socket.socket(socket.af_inet, socket.sock_dgram) # s.sendto(bytes('file_name','utf-8'),(host,port)) # while 1: # print('receiving data...') # s = socket.socket(socket.af_inet, socket.sock_dgram) # s.bind((host,port)) # data = s.recv(1024).decode('utf-8') # print('data=%s' + data # if not data: # break # # write data file # f.write(data) # f.close() # print('successfully received file.') # s.close() # print('connection closed') import socket # create socket object s = socket.socket(socket.af_inet, socket.sock_stream) # local machine name host = socket.gethostname() port = 5000 # connection hostname on port. s.connect((host, port)) # receive no more 1024 bytes tm = s.recv(1024) print("the time got server %s" % tm.decode('ascii')) s = socket.socket(socket.af_inet, socket.sock_dgram) s.bind((host,port)) s.send(b"hello! connected.") s.close() this server.py
# import socket # import sys # import time # host = 'localhost' # port = 5000 # s = socket.socket(socket.af_inet, socket.sock_dgram) # s.bind((host,port)) # print ('server listening...') # while true: # data = s.recv(30) # print ('connected') # print ('server received: ', data) # s.close # s = socket.socket(socket.af_inet, socket.sock_dgram) # file= # file = print( "recieved: " + s.recv(1024).decode('utf-8')) # filename='mytext.txt' # f = open(file,'rb') # l = f.read(1024).decode('utf-8') # while (len(l) <= len(l)): # s.sendto(bytes(l, 'utf-8'),(host,port)) # print('sent: ', l ) # l = f.read(1024) # f.close() # time.sleep(5) # print('done sending') # s.sendto(bytes('thank connecting','utf-8'),(host,port)) # s.close import socket import time # create socket object serversocket = socket.socket( socket.af_inet, socket.sock_stream) # local machine name host = socket.gethostname() port = 5000 # bind port serversocket.bind((host, port)) # queue 5 requests serversocket.listen(5) print('server listening..') while true: # establish connection clientsocket,addr = serversocket.accept() print("got connection %s" % str(addr)) currenttime = time.ctime(time.time()) + "\r\n" clientsocket.send(currenttime.encode('ascii')) s = socket.socket(socket.af_inet, socket.sock_dgram) s.bind((host,port)) message = s.recv(1024) print('server received: '+message.decode('utf-8')) s.close() clientsocket.close() the text file lorem ipsum nothing important.
Comments
Post a Comment