質問編集履歴
1
追加情報の掲載(症状はリンクローカルアドレス時に発生、試したことの追記)
test
CHANGED
File without changes
|
test
CHANGED
@@ -2,7 +2,7 @@
|
|
2
2
|
|
3
3
|
|
4
4
|
|
5
|
-
初めまして質問させて頂きます。
|
5
|
+
初めまして、質問させて頂きます。
|
6
6
|
|
7
7
|
現在、iPhoneとMacOS間を、TCP/IPのsocket通信にて文字列送信するプログラムを作成しております。socket通信にて文字列が送信できるところまではいったのですが、最初の1回だけ文字列送信に失敗してしまいます。
|
8
8
|
|
@@ -25,6 +25,10 @@
|
|
25
25
|
|
26
26
|
|
27
27
|
調べたところ、ARP(Address Resolution Protocol)というものが生成されていないため、最初の1回だけ通信が成り立たず通信のタイムエラーが発生しているようです。
|
28
|
+
|
29
|
+
|
30
|
+
|
31
|
+
また、症状が発生するのはプライベートローカルアドレス(192.168.xxx.xxx)ではなく、リンクローカルアドレス(169.254.xxx.xxx)にて発生するようです。
|
28
32
|
|
29
33
|
|
30
34
|
|
@@ -134,6 +138,8 @@
|
|
134
138
|
|
135
139
|
clientsock, client_address = serversock.accept() #接続されればデータを格納
|
136
140
|
|
141
|
+
print('connection!')
|
142
|
+
|
137
143
|
|
138
144
|
|
139
145
|
while True:
|
@@ -152,9 +158,13 @@
|
|
152
158
|
|
153
159
|
・一度ダミーの文字列を送信し、ARP情報を生成するようにしました。しかしこの方法では、connect関数実行時に必ずタイムエラーが発生する為、1分間を待たねばなりません。また、もしARP情報がすでに作られていたら接続→切断→接続となってしまいます。
|
154
160
|
|
161
|
+
・ダミーの文字列を送信しなくても、少し間を開けて2回connect()関数を呼ぶことで接続出来るようです。
|
162
|
+
|
163
|
+
・症状発生時、MacOS側では、Pyhonコード中「clientsock, client_address = serversock.accept()」部分で止まったままでした。
|
155
164
|
|
156
165
|
|
166
|
+
|
157
|
-
connect関数を呼び出す部分
|
167
|
+
connect関数を呼び出す部分の追加処理
|
158
168
|
|
159
169
|
```
|
160
170
|
|