2013-07-15 136 views
1

所以我想做一個類似於Netcat的Python端口偵聽器(nc -l -v -p 2121)。我環顧四周,一直未能找到我要找的東西。我只想通過CLI參數給出一個端口並在該端口上偵聽(python listen.py 2121)。如果任何人都可以指出我正確的方向,將不勝感激。Python端口偵聽器(像NC)

回答

2

從這裏開始的地方是socket模塊(這是內置的)。

要建立一個監聽套接字s,你會做這樣的事情:

port = 1234 

s = socket.socket() 
s.bind(("", port)) 
s.listen(1) 

一旦插座被監聽,你可以接受使用socket.accept()上有一個連接,這將返回包含連接插座一個元組和它連接的地址。

+0

很好的答案。但是請注意,如果你想'nc -kl'而不是'nc -l',你需要某種併發性,無論是事件循環(例如,圍繞'select')還是爲每個' accept'。另外,如果你希望能夠從'stdin'和socket讀取數據(就像'nc'一樣),你甚至已經需要''nc -l''的併發性。 – abarnert