たまにタイムアウトしますが、これは SKKサーバに対するクエリ “1ほげほげ ” の “1” と “ほげほげ ” が別パケットになった場合、rskkserv から切断されることによるようです(EPWINGの辞書使用中)。
暫定対処として、


send( s, "1", 1, 0 );
send( s, queryString, len, 0 );

となっている箇所を、下記のようにします。(それでもOSが勝手にパケットを分ける可能性もありますが、、、)


strcpy( buf, "1" );
strcat( buf, queryString );
send( s, buf, len + 1, 0 );

追記(23:28)

結局、WSASend を使うことにした。


WSABUF sendBuffer[ 2 ];
DWORD len;
int ret;
sendBuffer[ 0 ].len = 1;
sendBuffer[ 0 ].buf = “1”;
sendBuffer[ 1 ].len = midasiLen;
sendBuffer[ 1 ].buf = (char *)midasi;
ret = WSASend( s, sendBuffer, 2, &len, 0, NULL, NULL );

コメントを残す

メールアドレスが公開されることはありません。