IIS を搭載したリモート コンピューターに .net で記述された Web サービスがあり、socker を使用して SOAP 要求を実行する C プログラムで接続しようとしています。
私の問題は、データを受信する問題があることです。
受信データ ループは何らかの形で機能しません。
私が書く場合:
nByte = 1;
while(nByte!=512)
{
nByte = recv(sockfd,buffer,512, 0);
if( nByte < 0 )
{
// check the error
}
if( nByte > 0)
{
// append buffer to received data
}
}
デバッガーとブレークポイントなしで実行すると、すべてのデータが返されないことがあります。
試してみるとwhile(nByte!=0)
、データの最後でストールしてエラーになります。
それはどのように行われるべきですか?ありがとう、アントニノ
**編集** 別の方法で状況を解決しました。soap xml end の戻り値を確認します。
nByte = 1;
while(nByte!=0)
{
nByte = recv(sockfd,buffer,512, 0);
if( nByte < 0 )
{
// check the error
}
if( nByte > 0)
{
// append nByte buffer to received data
if( strstr("</soap:Envelope>", buffer) != NULL)
break;
}
}
それは非常に悲しいです...