私はC#で書かれており、1はnetworkStream.beginWriteコマンドを使用して、次を送信し、両方の二つのプログラムがあると思うしますTCPは最初、私は
1,2,3,4,5 .... ..200,201,202 ...(一部の終端バイト配列)
さて、私は他のプログラムを持っているバイトを取得し、それが何らかの理由で読み込み、最初のものがある:
197、198、199 ....(終端アレイ)
私の質問は、なぜ私のTCP beginWriteが(バッファーを)送信しているのですか?
また、いくつかの背景情報については、私はbeginReceiveで反対側でそれを読んでいます。また、送信しているバイト配列は30000バイトで、他のコンピュータの1024バイトバッファに読み込んでいます。私がこれを行い、終端配列を使って分割すると問題になるでしょうか?ここで
は、コンピュータ1上で私のsendコマンドである:ここで
public bool sendToServer(SocketAsyncEventArgs e, params byte[][] buffer)
{
int length = 0;
foreach (byte[] bytes in buffer)
{
length += bytes.Length;
}
byte[] buffer2 = new byte[length + 5];
int index = 0;
foreach (byte[] bytes in buffer)
{
Buffer.BlockCopy(bytes, 0, buffer2, index, bytes.Length);
index += bytes.Length;
}
byte[] eof = { 60, 69, 79, 70, 62 };
Buffer.BlockCopy(eof, 0, buffer2, index, 5);
// netStream.Write(buffer2, 0, buffer2.Length);
netStream.BeginWrite(buffer2, 0, buffer2.Length, new AsyncCallback(SendCallback), clientSocket);
//socketEventArg.SetBuffer(buffer2, 0, buffer2.Length);
//Socket sock = socketEventArg.UserToken as Socket;
//bool willRaiseEvent = sock.SendAsync(socketEventArg);
Console.WriteLine("Sending: " + buffer2.Length + " bytes of data");
//foreach (byte bi in buffer2)
{
// Console.WriteLine(bi);
}
// clientSocket.BeginSend(buffer2, 0, buffer2.Length, 0,
// new AsyncCallback(SendCallback), clientSocket);
return true;
}
はそのデータを受信するための私のコードです:
public void AcceptCallback(IAsyncResult ar)
{
// Get the socket that handles the client request.
Socket listener = (Socket)ar.AsyncState;
Socket handler = listener.EndAccept(ar);
Console.WriteLine("Connected!");
// Create the state object.
MonkeyObject state = new MonkeyObject();
state.workSocket = handler;
MonkeyObjects.Add(state);
listener.BeginAccept(
new AsyncCallback(AcceptCallback),
listener);
byte[] buffer = new byte[1024];
state.currentBuffer = buffer;
handler.BeginReceive(buffer, 0, MonkeyObject.BufferSize, 0,
new AsyncCallback(ReadCallback), state);
}
コードを教えてください。 「終端アレイ」とは何ですか? – svick
コードの最後に、5バイトを追加します:60,69,79,70,62 – rkrishnan2012
クライアントとサーバーのプロジェクト全体をzipファイルに投稿したいですか?それは私の他の問題のいくつかを解決するでしょう。これは私が試しているかなり簡単なことです。 – rkrishnan2012