使用python

时间:2019-06-07 11:36:15

标签: python python-3.x multithreading sockets

我有一个客户端程序,但它仅生成一个客户端,但是我想使用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。有人可以告诉我我的代码有什么问题。

0 个答案:

没有答案