python 監聽埠 如何使伺服器偵聽多個埠

2021-10-12 11:28:47 字數 1855 閱讀 1759

我想用同一臺伺服器監聽100個不同的tcp埠。以下是我目前正在做的事情:import socket

import select

def main():

server_socket = socket.socket(socket.af_inet, socket.sock_stream)

server_socket.setsockopt(socket.sol_socket, socket.so_reuseaddr, 1)

for i in range(1000,1100):

server_socket.bind(('127.0.0.1', i))

server_socket.listen(1)

read_list = [server_socket]

while true:

readable, writable, exceptional = select.select(read_list, , read_list)

for s in readable:

if s is server_socket:

#print "client connected"

client_socket, address = server_socket.accept()

else:

# one of the tcp clients

data = s.recv(1024)

if not result:

s.close()

read_list.remove(s)

#print "client disconnected"

if __name__ == "__main__":

main()

它返回乙個說permission denied的錯誤。是因為某些埠(1000-1100)被保留而沒有分配給它,還是因為其他原因?

我試了一下(8000-8100),上面寫著invalid arguments

已編輯import socket

import select

def create_socket(tcp_port):

server_socket = socket.socket(socket.af_inet, socket.sock_stream)

server_socket.setsockopt(socket.sol_socket, socket.so_reuseaddr, 1)

server_socket.bind(('127.0.0.1', tcp_port))

server_socket.listen(1)

return server_socket

def main():

read_list =

for tcp_port in range(8000,8100):

while true:

readable, writable, exceptional = select.select(read_list, , read_list)

for s in readable:

if s is server_socket:

#print "client connected"

client_socket, address = server_socket.accept()

else:

# one of the tcp clients

data = s.recv(1024)

if not result:

s.close()

read_list.remove(s)

#print "client disconnected"

if __name__ == "__main__":

main()

python同時監聽多個埠 監聽多個埠

我在玩twisted,建立了乙個簡單的 伺服器 我想讓伺服器監聽多個埠 1025 65535 而不是單個埠。我該怎麼做?在 我的 from twisted.internet.protocol import protocol,serve ctory from twisted.internet impo...

Linux中如何檢視服務及監聽埠

問 我該如何發現哪種服務正在某個特定埠上監聽呢?我如何發現哪乙個程式正在乙個特定埠上監聽呢?答 在 nix系統中,你可以使用下面的任何乙個命令來得到在乙個特定tcp埠上監聽的列表。lsof 其功能是列示開啟的檔案,包括監聽埠。netstat 此命令象徵性地展示各種與網路 有關的資料和資訊的內容。ls...

Linux中如何檢視服務及監聽埠

問 我該如何發現哪種服務正在某個特定埠上監聽呢?我如何發現哪乙個程式正在乙個特定埠上監聽呢?答 在 nix系統中,你可以使用下面的任何乙個命令來得到在乙個特定tcp埠上監聽的列表。lsof 其功能是列示開啟的檔案,包括監聽埠。netstat 此命令象徵性地展示各種與網路 有關的資料和資訊的內容。ls...