現在python3で、thredingを用いて、
簡易的なチャットができるようなものを作ろうとしています。
動作の流れとしては、まず自身でサーバ(メッセージの受信機能)を動かして、
その後にクライアント(メッセージの送信機能)を動かす流れになっています。
また、ソースコードは
クライアント(メッセージの送信)とサーバ(メッセージの受信)の
動きをするものを一つのソースにまとめたいと思っています。
クライアント側のソースコードとしては以下のような感じで書いて、
python
1def CLIENT(): 2 with socket.socket(socket.AF_INET, socket.SOCK_STREAM) as s: 3 s.connect(サーバのアドレス,ポート) 4 while True: 5 〜メッセージ送信〜
サーバ側も同じように、以下の様に書いています。
python
1def SERVER(): 2 with socket.socket(socket.AF_INET, socket.SOCK_STREAM) as s: 3 s.bind(自身のアドレス、ポート) 4 s.listen(1) 5 6 while True: 7 conn, addr = s.accept() 8 with conn: 9 〜データ受信〜
で、自分の理想としては、メッセージはいつでも受信できるようにしたいので、
threadingを使ってSERVER()を裏で動かし続けたいと考えて
処理の最初に以下の様にコードを入れました。
python
1if __name__ == "__main__": 2 thread_SERVER = threading.Thread(target=SERVER, name="SERVER") 3 thread_SERVER.start() 4 CLIENT()
で、送信と受信のポートを一緒にして、2つのデバイス間(AとBとします)でいざ動かしてみると、
AはBに接続できてメッセージは送信できるのですが、
BはAに接続できずメッセージを受信するだけの動作になってしまっています。
相互で送信と受信をできるようにするためには、どのように
ソースを書くべきなのでしょうか?
ご教授よろしくお願いいたします。
あなたの回答
tips
プレビュー