-1

サーバーで受信したデータからバイトを読み取らなければならないクライアント/サーバーアプリケーションを使用しています。JavaからC#に変換しようとしていますが、これを解決できないようです。T

Javaコード:

byte[] bucket = new byte[4];
this.socket.getInputStream().read(bucket, 0, 2);

そして今、私はC#で同じコードが必要です!あなたが私を助けてくれることを願っています!

4

3 に答える 3

4

同様のポートが必要な場合、最も賢明なことは、おそらくソケットをでラップすることです。これは、結果NetworkStreamと非常によく似た動作をしgetInputStreamます(1回だけ実行する場合を除く)。

var ns = new NetworkStream(socket);
...
int bytesRead = ns.Read(bucket, 0, 2);

ただし、ns完了時に(理想的にはを介してusing)破棄されることを忘れないでください。Receiveソケットを直接使用する場合は、ソケットのメソッドを使用する必要があります。

于 2012-11-23T21:28:39.180 に答える
2

TCPクライアントを使用することをお勧めします 。

   TcpClient client = new TcpClient(server, port);
   NetworkStream stream = client.GetStream();
   Byte[] data = new Byte[4;
   stream.Read(data, 0, data.Length);

編集:あなたがすでにソケットにアクセスできると仮定して、以下を試してください(Socket#Receiveを使用してください):

   byte[] bucket = new byte[4];
   int bytesRec = socket.Receive(bucket);
于 2012-11-23T21:21:29.643 に答える
0

System.Net.Sockets.TcpListenerのサンプルコードには、非常に単純なhttpサーバーの実装があります。この例は、ソケットから読み取る方法を示しています。

于 2012-11-23T21:21:19.550 に答える