ここでは、サーバーとクライアントがマシン上で動作していることについてのテロリズムの問題をトラブルシューティングしています。私はすべてのNETプロセスを知っていますが、コードを参照しているものがありません。私はこれに関連する何かを見つけることができませんでした。ビジュアルC#2008でTCPListener/TCPClientサーバー - クライアントデータの書き込み/読み取り
Iコード、私は2つの異なるプロジェクトで定期的れるtcpClient/TCPListenerを使用します。
Project1の(クライアント)
のProject2(サーバー)
私の問題は多分ありとてもシンプルです:
1->サーバーがデータ、イベントハンドラを受け取る方法について可能ですか?
while (true)
{
if (NetworkStream.DataAvailable)
{
//stuff
}
Thread.Sleep(200);
}
私は、サーバーからの着信データを制御するために、がらくたの方法としてこれを発生します は私の最初のサーバー・コードでは、私は、このループを作るために使用されます。 BUTサーバーは常にデータを受信する準備ができています。
私の質問:次のようなものがありますか? - >
AcceptTcpClient();
何か起こるまで待つハンドラが必要です。この場合、特定のソケットデータを受信します。
2->一般的なネットワーキングI/Oメソッド。
問題は(私はnoobです)複数のデータ書き込みを処理する方法です。 バイト配列で大量のデータを送信すると、さらにデータを送信すると送信が中断することがあります。すべてのデータが結合され、受信時にエラーが発生します。私は、複数の書き込みを処理して送受信する必要があります。
これは可能ですか?
** 1)** 'NetworkStream.Read(buffer、...、...)'はブロッキング呼び出しです。その奇妙なwhileループは必要ありません。 ** 2)** 'データをもっと送ると送信が壊れることがあります。 'あなたは 'NetworkStream.Write(buffer、...、...)'を安全に使うことはできません。 –