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

Popular posts from this blog

c# - Update a combobox from a presenter (MVP) -

How to understand 2 main() functions after using uftrace to profile the C++ program? -

How to put a lock and transaction on table using spring 4 or above using jdbcTemplate and annotations like @Transactional? -