サーバプログラム
python
1import socket 2from time import sleep 3s=socket.socket(socket.AF_INET, socket.SOCK_STREAM) 4 5s.bind(('127.0.1.1',50009)) 6s.listen(5) 7s.setblocking(0) 8while True: 9 #print("a") 10 #sleep(1) 11 try: 12 conn, addr = s.accept() 13 conn.setblocking(0) 14 print ('connection from',addr) 15 data=conn.recv(1024) 16 print ('recived: ',data,len(data)) 17 18 except: 19 pass
クライアントプログラム
python
1import socket 2 3s=socket.socket(socket.AF_INET, socket.SOCK_STREAM) 4s.connect(('127.0.1.1',50009)) 5while True: 6 data = input("Client>") 7 data = data.encode('utf-8') 8 s.send(data)
この2つのノンブロッキングな通信を行なうプログラムを実行したのですが,クライアントから送信したデータが表示されません.
サーバ側ではクライアントが接続されたときに
print ('connection from',addr)
この部分しか表示されませんでした.これは何が原因なのでしょうか?クライアント側がそもそもデータを送ることができていないのでしょうか?
ifconfigの結果は以下のようになっています.
enp0s31f6 Link encap:イーサネット ハードウェアアドレス c8:5b:76:03:9b:4c
UP BROADCAST MULTICAST MTU:1500 メトリック:1
RXパケット:0 エラー:0 損失:0 オーバラン:0 フレーム:0
TXパケット:0 エラー:0 損失:0 オーバラン:0 キャリア:0
衝突(Collisions):0 TXキュー長:1000
RXバイト:0 (0.0 B) TXバイト:0 (0.0 B)
割り込み:16 メモリ:f1200000-f1220000
lo Link encap:ローカルループバック
inetアドレス:127.0.0.1 マスク:255.0.0.0
inet6アドレス: ::1/128 範囲:ホスト
UP LOOPBACK RUNNING MTU:65536 メトリック:1
RXパケット:310 エラー:0 損失:0 オーバラン:0 フレーム:0
TXパケット:310 エラー:0 損失:0 オーバラン:0 キャリア:0
衝突(Collisions):0 TXキュー長:1
RXバイト:24434 (24.4 KB) TXバイト:24434 (24.4 KB)
wlp1s0 Link encap:イーサネット ハードウェアアドレス ac:2b:6e:53:e1:66
inetアドレス:192.168.1.10 ブロードキャスト:192.168.1.255 マスク:255.255.255.0
inet6アドレス: fe80::d392:7d45:e2b:f91a/64 範囲:リンク
inet6アドレス: 240b:13:86a0:3200:5498:e158:cfa1:83ae/64 範囲:グローバル
inet6アドレス: 240b:13:86a0:3200:23d8:105b:e92a:7e19/64 範囲:グローバル
UP BROADCAST RUNNING MULTICAST MTU:1500 メトリック:1
RXパケット:395 エラー:0 損失:0 オーバラン:0 フレーム:0
TXパケット:437 エラー:0 損失:0 オーバラン:0 キャリア:0
衝突(Collisions):0 TXキュー長:1000
RXバイト:183151 (183.1 KB) TXバイト:72075 (72.0 KB)