моделирование клиентов с использованием Python - PullRequest
2 голосов
/ 07 июня 2019

У меня есть клиентская программа, но она генерирует только одного клиента, но я хотел бы смоделировать несколько клиентов, таких как более 100-1000, по крайней мере, разных портов, используя python. Я не уверен, как это сделать. Пожалуйста, дайте идею.

Обновление: Я пытался использовать 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. Может кто-нибудь сказать мне, что не так с моим кодом.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...