0

こんにちは、私は tcp ソケット プログラミングに本当に慣れていません。スレッドを使用して複数のクライアントを 1 つのサーバーに接続し、各クライアントがサーバーに接続したら、それを使用したいと考えています。誰(クライアント)がこのサーバーに接続されているかを確認できます。

client.c と server.c の両方でクライアント レコードを保持する構造体を作成することを考えていました。クライアントが接続されると、server.c に構造体を渡すために使用し、server.c では、サーバーがデータサーバーsend(sock , (void *)&package , sizeof(struct USER) , 0を受信すると同じ構造体も作成します。recv(sock, (void *)&package, sizeof(struct USER), 0);これらのデータを構造体に格納しますが、どのように? 結果を試してみると、User1と呼ばれる複数のクライアントとUser2と呼ばれる別のクライアントを接続したときに、ストラットの結果を印刷しようとしました..

クライアント1に表示

USER[0]: User1
USER[1]: (NULL)

クライアント2に表示

USER[0]: (NULL)
USER[1]: User2

誰でも助けてください

どうもありがとう

4

1 に答える 1

0

複数のクライアントが単一のサーバーに接続するのは一般的です。各クライアントからサーバーにどの情報を渡したいのかわかりませんが、それがクライアントの IP アドレスやネットワーク設定のようなものである場合、これは接続を試みるときにクライアントによってサーバーに既に提供されています。TCP/IP プロトコルの詳細な調査は良い考えかもしれません。利用可能な優れたチュートリアルと例が多数あります。

ネットワークを介して他の情報を共有しようとしている場合、接続が確立されると、ソケットを介して必要なものを渡すことができます。これはすべて、指定されていないアプリケーションの動作に依存します。

于 2013-10-16T17:37:52.287 に答える