GCEインスタンスと手元のPC間でUDP通信をしたい
こんにちは、GCEインスタンスと手元のPC間でUDP通信をする方法に関して質問させてください。こちらのサイトを参考に、いろいろ試しているのですが、うまく通信ができておりません。アドバイスいただきたく、よろしくお願いいたします。
試している内容
- サーバ:VMインスタンス(OS:Debian GNU/Linux 9 (stretch), f1-micro)
サーバで動かしているコード↓
# -*- coding:utf-8 -*-
import socket
host = "xxx.xxx.xxx.xxx" #外部IP、内部IP両方試しました
port = 8088
serversock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
serversock.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1)
serversock.bind((host,port))
serversock.listen(10)
print 'Waiting for connections...'
clientsock, client_address = serversock.accept()
while True:
rcvmsg = clientsock.recv(1024)
print 'Received -> %s' % (rcvmsg)
if rcvmsg == '':
break
print 'Type message...'
s_msg = raw_input()
if s_msg == '':
break
print 'Wait...'
clientsock.sendall(s_msg)
clientsock.close()
- クライアント:Cloud Shell
クライアントで動かしているコード↓
# -*- coding:utf-8 -*-
import socket
host = "xxx.xxx.xxx.xxx" #外部IP、内部IP両方試しました
port = 8088
client = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
client.connect((host, port))
client.send("Test Message")
response = client.recv(4096)
print response
ファイアウォールルールの設定に以下の2つを追加しました
- (上り)ターゲットすべてに適用 IP 範囲: 0.0.0.0/0 udp:0-65535
- (下り)ターゲットすべてに適用 IP 範囲: 0.0.0.0/0 udp:0-65535
まずGCE側でサーバ用コードを実行し、「Waiting for connections...」がでてから、Cloud Shellでクライアント用コードを実行しました。
困っているところ
- サーバ側は「Waiting for connections...」と出たまま動かない("Test Message"が表示されてほしい)
- クライアント側は、何も出力されない
最終的にやりたい内容
- まずCloud ShellとGCEインスタンスの間でUDP通信ができるようにしたい
- Cloud Shellで動かしているpythonコードを、手元のPC上のJupyterNotebookに移して、手元のPCとGCEインスタンスの間でUDP通信ができるようにしたい