0

シナリオは次のとおりです。

Linux で telnet ユーティリティを使用してサーバーに接続します。接続が確立された後、クライアントは、サーバーによって読み取られる引数を入力する必要があります。

サーバーコードは次のとおりです。

int main(void)
{
int new_fd;
char *string;
// Establish the connection

if (send(new_fd, "Enter Command: ", 15, 0) == -1)
            perror("send");  

// Here I want to accept the argument from the server
return 0;
}

次を使用してサーバーに telnet 接続すると、 telnet servername portnumber client receive :Enter Command:の前に引数を入力します。例えばEnter Command: Hey There!

私がしたいのは、Hey There!それをstringサーバーに保存して印刷することだけです。どうやってやるの?

4

1 に答える 1

2

ソケットを介して何かを受信するには、呼び出しrecvて、戻り値が 0 より大きい限り、受信データを任意の場所に書き込む必要があることを確認する必要があります。

 ssize_t recv(int sockfd, void *buf, size_t len, int flags);

これらの呼び出しは、受信したバイト数を返します。エラーが発生した場合は -1 を返します。ピアが正常なシャットダウンを実行した場合、戻り値は 0 になります。

ここから

于 2012-09-20T07:39:30.453 に答える