如何创建一个将在python中侦听多个端口的UDP服务器?

时间:2016-03-28 12:32:00

标签: python udp

这是我的服务器:

import socket

for port in range(33,128):
    server_socket = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
    server_socket.bind(('0.0.0.0', port))
    while True:
        (client_name, client_adress) = server_socket.recvfrom(1024)
        print chr(port)
    server_socket.close()

这是我的客户:

import socket


message = raw_input("Enter a message: ")

for letter in message:
    my_socket = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)

    while True:
        my_socket.sendto("", ('127.0.0.1', ord(letter)))
        (data, remote_adress) = my_socket.recvfrom(1024)
    my_socket.close()

print 'The server sent: ' + data

1 个答案:

答案 0 :(得分:0)

我在python中不是很好,但我认为你应该将你的套接字保存到for内的列表中,然后在select之外的无限循环中使用for函数

import socket
import select

sockets = []

for port in range(33,128):
    server_socket = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
    server_socket.bind(('0.0.0.0', port))
    sockets.append(server_socket)

empty = []
while True:
    readable, writable, exceptional = select.select(sockets, empty, empty)
    for s in readable:
         (client_data, client_address) = s.recvfrom(1024)
         print client_address, client_data
for s in sockets:
   s.close()