あるプログラマの日記

プログラマのメモ、出来事、考えたこと、勉強とかの雑記

NORTiプログラムでTCP/IP通信の問題⇒解決

5月になりました。ゴールデンウィークです。

あ〜あ休みたいです。が、お仕事がまだ残ってました。

仕様変更やら、ハード的な不具合やらで安定するまで

ゴールデンウィークのお休みはお預けです。(T_T)



NORTiプログラムでのTCP/IP通信の問題は解決しました。

原因は、TCP/IP通信でLANが繋がっていることを確認するために
定期的にチェック用のデータを送信しているのですが
これが、LANケーブルを抜かれても、おかまいなしで
データを定期的に送ろうとしていたことが原因でした。


送信用データがバッファを溢れさせて、
バッファクリアがされていなかったので
windowサイズが0になっていました。


ドライバー内でつながっているかいないかを判断して
つながっている場合は送信、繋がっていない場合は
送信しないで、バッファをクリアして接続待ちにすること
で解決しました。
(しかしドライバー内で接続チェックできるのなら
 定期的にデータ送信する必要がないようにも思いますが...)

これで、LANケーブルを繋ぐとTCP/IP通信が復活して
データ送信できるようになりました。


それとですね、後少し問題がでました。
SH系は、アライメントの問題があって通信するデータ構造に
注意する必要があります。

なんど送信しても、正しくデータが受け取れない場合があり
発覚したのですが、SHの仕様書にちゃんと書かれてました。
よく仕様書を読んでから(常識)作りましょう。