質問編集履歴

1

追加情報の掲載(症状はリンクローカルアドレス時に発生、試したことの追記)

2018/12/19 05:49

投稿

atRhod
atRhod

スコア10

test CHANGED
File without changes
test CHANGED
@@ -2,7 +2,7 @@
2
2
 
3
3
 
4
4
 
5
- 初めまして質問させて頂きます。@miyamaLと申します。
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