我有一个客户端程序,但它仅生成一个客户端,但是我想使用python模拟多个客户端,例如至少100个到1000个不同的端口。我不确定该怎么做。请给个主意。
更新: 我尝试使用localhost进行测试,并且可以从其他端口发送请求。但是我为100个客户端尝试的循环似乎不起作用。知道怎么了吗?
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()
我想在一台计算机上模拟更多客户端。
编辑:
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()
我试图修改代码,但是问题是服务器接受无限数量的端口。但是我只希望它接受5000到5010。有人可以告诉我我的代码有什么问题。