2

問題は、サーバーが古いフレームワークで記述されているため、そこでSocketStreamを使用できず、代わりにSystem.Net.Sockets.TcpClientを使用することです。クライアントは新しいフレームワークで記述されており、TcpClientとSystem.Net.Sockets全体はサポートされていません。新しいフレームワークには、Windows.Networking.Socketsがあります。正確な質問は次のとおりです。クライアントからサーバーにデータを送信するにはどうすればよいですか。

ユーザーが[送信]ボタンをクリックすると、次のようになります。

var writer = new DataWriter(socket.OutputStream);
writer.WriteString(message);
var ret = await writer.StoreAsync();
writer.DetachStream();
LogMessage(string.Format("Sent (to {0}) {1}", socket.Information.RemoteHostName.DisplayName, message));

サーバー側:

srReceiver = new System.IO.StreamReader(tcpClient.GetStream());
strResponse = srReceiver.ReadLine();
4

1 に答える 1

1

ソケットは、オクテットの双方向ストリームを許可するだけです。これはAPIとは無関係です。Win32APIはPOSIXソケットと非常にうまく相互運用できます(Linux上で実行されているApacheから提供されるWindows上のコンテンツの閲覧を検討してください)。

それ以上のことは、クライアントとサーバーが同意する必要があります(メッセージのエンコードなど)。

つまり。(異なるAPIを使用して)接続を確立してから、共通の形式でデータを送信すると、データが受信されます。

于 2012-04-27T10:27:45.357 に答える