I have a client program but it generates only one client but i would like to simulate multiple clients like more than 100 to 1000 at least different ports using python. I am not sure how to do it. Please give an idea.
Update: I tried use localhost for testing and i could send requests from different port. But the loop i tried for 100 clients doesn't seem to work. Any idea whats wrong?
def con_server(Host,port):
sock = socket(AF_INET, SOCK_DGRAM)
host='localhost'
for p in range(5000,5100): -> I always get 5099 port connection in server side.
por =p
ad=(host,por)
sock.bind(ad)
address=(Host,port)
sock.sendto("connection".encode(),address)
data,server=sock.recvfrom(4096)
data=data.decode()
print('Client:' +data)
if __name__=="__main__":
t2=threading.Thread(target=con_server,name='con_servr',args=("192.168.1.cc,4242))
t2.start()
t2.join()
I would like to simulate more clients from one machine.
Edited:
import socket
import select
def create_socket(UDP_PORT):
server_socket = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
server_socket.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1)
server_socket.bind(("localhost",UDP_PORT))
return server_socket
def main():
read_list=[]
for UDP_PORT in range(5000,5010):
read_list.append(create_socket(UDP_PORT))
while True:
server_socket=socket.socket(socket.AF_INET,socket.SOCK_DGRAM)
host="localhost"
port=4242
address=(host,port)
server_socket.sendto("connection".encode(), address)
data, server = server_socket.recvfrom(4096)
data = data.decode()
print('Client:' + data)
if __name__=="__main__":
main()
I tried to modify the code but the problem is that server accepts infinite number of ports. But i wanted it to accept only from 5000 to 5010. Can someone tell me whats wrong with my code.