私は私が午前問題はがを読むことである非同期ソケットの読み取りが終了したときは、どうすればわかりますか?接続が閉じている場合
private void read(IAsyncResult ar) {
//Get the Server State Object
ServerState state = (ServerState)ar.AsyncState;
//read from the socket
int readCount = state.socket.EndReceive(ar);
//check if reading is done, move on if so, trigger another read if not
if (readCount > 0) {
//purge the buffer and start another read
state.purgeBuffer();
state.socket.BeginReceive(state.buffer, 0, ServerState.bufferSize, 0, new AsyncCallback(read), state);
}
else {
//all bytes have been read, dispatch the message
dispatch(state);
}
}
...非同期readメソッドを持っているだけで0です。どのようにすれば、これがそのメッセージの終わりで、ディスパッチャにデータを渡し、新しいメッセージを受け入れるためにソケットを開いたままにしておきます。
ありがとうございました!
メッセージが届いたら、メッセージの長さを送信する必要があります。 – Dabloons
それはまさにそれです。それがなければ、インターネットのラジオストリームのオーディオストリームのようなデータの流れはまったくありません。 – BlueM