0

様、

1 つのソケット オブジェクトを使用してデータを送受信する方法を知りたいですか?

4

2 に答える 2

1

標準 C にはソケット インターフェイスがありません。

OS (Posix、Windows、その他) のソケット インターフェイスを見つけます。ドキュメントを読んでください。ソケットを開くと、データを送受信するための関数が表示されます。

TCP ソケットは双方向通信チャネルを表すため、特別なことをしなくても同じソケットで両方を使用できます。たとえば、物理層が全二重か半二重かなど、それを実現する方法は介在するネットワーク次第です。

どちらかがブロックされた場合に何が起こるか注意してください。ソケットの両端が書き込みを試みていて、バッファが双方向ですべていっぱいになっている場合、どちらの側ももう一方の側がそれ以上書き込むことができないため、デッドロックが発生する可能性があります。 side は、バッファーにスペースを作るために何かを読み取ります。両側が読み取りをブロックされ、誰も書き込みを行っていない場合も、同じことが起こります。

于 2012-06-06T09:15:21.460 に答える
0

データを送信する場合は、send() を呼び出します。データを受信したい場合は、recv() を呼び出します。それほど複雑ではありません。

データがネットワーク経由で転送されるメカニズムについて知りたい場合は、Stevens のネットワーキングに関する本を読むことをお勧めします (Beej のガイドは読み飛ばしてください。念のため)。

于 2012-06-06T09:15:40.687 に答える