0

最初に引数をチェックし、サーバーに接続してHTTPリクエストを書き込むことができるファイルを定義できるソケットを作成しています。データがある場合は、getlineを介して、この後、読み取った行を処理する必要があります。ストリームの終わりを確認する必要があり、ストリームの終わりにストリームを閉じて終了する必要がありますが、Endoflineを確認する方法がわかりません...そして私が書いた形式が正しいかどうか

int main(int argc, char *argv[])
{ 
if(argc<2) //checking arguments
{
printf("expected a name for resolving");
exit(1);
}

int sock = createSocket(argv[1], argv[2]);
FILE *stream = getStream(sock);
printf("\n###### CLIENT IS SENDING THE FOLLOWING TO THE SERVER\n");
 fputs("GET /HTTP/1.0\n Host:Google.com\n Connection:close \r\n\r\n",stream);

while(1) 
{
char *string = NULL;
int len = getLine(&string, stream);
int numbytes=0;
printf("The length of string: %d\n",len);
printf("#####CLIENT RECEIVED THE FOLLOWING FROM SERVER \n%s", string);      

while (fgetc(stream) != EOF)
++numbytes;
fclose(stream);
printf("##### Connection closed by server");
exit(EXIT_SUCCESS);
free(string);

} 


}
4

1 に答える 1

-1

これが機能するかどうかは疑問です...ソケットへの読み取りと書き込みは、sendおよびrecvコマンドを介して実行されます。

http クライアントのサンプル コードは次のとおりです。

http://coding.debuntu.org/c-linux-socket-programming-tcp-simple-http-client

于 2013-02-13T05:33:48.217 に答える