NetServerの送信がうまくいかない件
WinPcapを利用したデバイスドライバがread時にブロックしているのがだめだということが分かった。
pcap_open_liveの引数でタイムアウトを1msにして、readでタイムアウト時は0を返すようにしたら送信がうまくいくようになった。
その後、べた書きであれこれ整理したら、簡単なWebクライアントができた。
これは、サーバー内に実装されたべた書きなので、サーバーがAPIを提供しこれと同じ機能のものが、サーバー外で実装できなければならない。
uIPのイベントループはuip_flagsの状態を調べるマクロ(uip_connected, uip_ackedなど)をうまく使ってイベント処理をしなければいけないんだけれども、任意のクライアントに対してどうやってこれを開放すべきなんだろうか。
考え中。
次のステップとしては
- uip_xxxのイベントを意識したコードを書く。(サーバー内クライアント)
- イベント処理の流れが完全に把握できたら任意のクライアントに開放する仕組みを考える
という感じで。