teratail header banner
teratail header banner
質問するログイン新規登録

質問編集履歴

1

メッセージが送信されない

2020/04/08 04:40

投稿

Yuta_for
Yuta_for

スコア21

title CHANGED
File without changes
body CHANGED
@@ -30,4 +30,61 @@
30
30
  (そのIPアドレスも自分自身を指定しているに過ぎません)
31
31
  権限周りが介入する余地がないように思うのですが、一体どの部分に対して権限エラーが発生しているのでしょうか?
32
32
 
33
- わかる方がいましたらどうかご教授お願いいたします。
33
+ わかる方がいましたらどうかご教授お願いいたします。
34
+
35
+ # 追記ソケットメッセージが送信されない
36
+
37
+ 回答者様のおかげでポートの誤りに気づきましたが、その後にクライアントからサーバへsocket通信を実行してもメッセージが送信できない事象に見舞われました。
38
+ ```cleint
39
+ import socket
40
+
41
+ TCP_IP = '127.0.0.1'
42
+ TCP_PORT = 49155
43
+ BUFFER_SIZE = 1024
44
+ MESSAGE = b'Hello, World!'
45
+
46
+ s = socket.socket(socket.AF_INET, socket.SOCK_STREAM) # Generete socekt(IP v4) and TCP
47
+ s.connect((TCP_IP, TCP_PORT)) # Specify IP address and port
48
+ s.send(MESSAGE) # Send Message
49
+ data = s.recv(BUFFER_SIZE) #receive buffer size
50
+ s.close()
51
+
52
+ print("received data", data)
53
+
54
+
55
+ /home/yuta/Desktop/work/python/PycharmProjects/TestPJ/venv/bin/python /home/yuta/Desktop/work/python/PycharmProjects/TestPJ/networking/client.py
56
+ received data b''
57
+
58
+ Process finished with exit code 0
59
+ ```
60
+
61
+ ```server
62
+ import socket
63
+
64
+ TCP_IP = '127.0.0.1'
65
+ TCP_PORT = 49155
66
+ BUFFER_SIZE = 1024
67
+
68
+ s = socket.socket(socket.AF_INET, socket.SOCK_STREAM) # Generete socekt(IP v4) and TCP
69
+ s.bind((TCP_IP, TCP_PORT)) # Specify IP address and port
70
+ s.listen(1) # Prepare to connect socket
71
+
72
+ conn, addr = s.accept() # Wait for connection socket
73
+ print("Connection address:". addr)
74
+ while 1:
75
+ data = conn.recv(BUFFER_SIZE)
76
+ if not data: break
77
+ print("received data:", data)
78
+ conn.send(data) # echo
79
+ conn.close()
80
+
81
+ Traceback (most recent call last):
82
+ File "/home/yuta/Desktop/work/python/PycharmProjects/TestPJ/networking/server.py", line 12, in <module>
83
+ print("Connection address:". addr)
84
+ AttributeError: 'str' object has no attribute 'addr'
85
+
86
+ Process finished with exit code 1
87
+ ```
88
+
89
+ エラーの内容としてクライアント側でそもそも送信するためのメッセージが生成されていないように思いましたが、何が間違っているのか不明です。
90
+ わかる方いましたらご教授お願いいたします。