2017-11-18 4 views
1

のポートを取得する方法:Pythonの - 私はそうのようなUDPソケットがある場合は、送信元ソケット(UDP)

import socket 
sock = socket.socket(socket.AF_INET, socket.SOCK_DGRAM) 
sock.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1) 

を、ソケットにデータを送信することができます:

sock.sendto("message", address) 

私はどのように見つけるかをソケットのポート - データをaddressに送信するときに使用するポート?

EDIT:私はsock.getsockname()を試してみましたが、これはエラーを発生させます:[Errno 10022] An invalid argument was supplied

答えて

2

私はPythonのソケットクラスとあまり慣れていないんだけど、私はここにhttps://docs.python.org/2/library/socket.html#socket.getnameinfo おそらく socket.getnameinfo()[1]を読んだことをもとに働くかもしれません

.getsockname()以来

は(ホスト、ポート)2つのタプルを返しますが、実行して.getsockname()を使用することができます前に、ソケットをバインドする必要

sock.bind(('', 0))

希望すると便利です。

+1

あなたは実際に '.getsockname'を使って、ソケットがバインドされているホスト、ポートのタプルを取得します。 –

+0

申し訳ございません。私はそれに応じて修正しました。情報のおかげで! –

+0

'.getsockname()'はエラーを発生させますが、これはポートにバインドしていない可能性が高いからです。代わりに、ポート自体が見つかるようにしています。 –

関連する問題