UDP send client with sticky source port
UDP send client - Shammerismでは、単にデータを送るというだけのクライアントを書いた。しかし、稀に送信ポートを固定したいと思うときがあるので、それを実現するように一行ばかり追加した。サーバーと同じように、bind してやればいい。
import socket import time from contextlib import closing def main(): host = '192.168.1.101' port = 12345 count = 0 sock = socket.socket(socket.AF_INET, socket.SOCK_DGRAM) sock.bind(('192.168.1.3', 8889)) with closing(sock): for i in range(0, 8191): message = message + 'X' sock.sendto(message, (host, port)) count += 1 time.sleep(1) data, server = sock.recvfrom(8192) print '%s returns %s' % server data return if __name__ == '__main__': main()
この例だと、192.168.1.101 に、192.168.1.3 の 8889 ポートを指定して接続する。