2

があり、ObservableCollection<MyClass>その内容をシリアル化し、ソケットを使用して送信します。コードに従ってください:

private const int Port = 3762;
private static SocketPermission permission = new SocketPermission(NetworkAccess.Accept, TransportType.Tcp, "", Port);
private static IPHostEntry ipEntry = Dns.GetHostEntry(string.Empty);
private static IPAddress ipAddress = ipEntry.AddressList[0];
private static IPEndPoint ipPoint = new IPEndPoint(ipAddress, Port);

Socket sTransmissao = new Socket(ipAddress.AddressFamily, SocketType.Stream, ProtocolType.Tcp);

using (var stream = new MemoryStream())
{
    var binary = new System.Runtime.Serialization.Formatters.Binary.BinaryFormatter();
    binary.Serialize(stream, TransmissaoPendencias);
    byte[] bArray = new byte[stream.Length];
    stream.Seek(0, SeekOrigin.Begin);
    stream.Read(bArray, 0, (int)stream.Length);

    sTransmissao.Connect(ipAddress, Port);
    sTransmissao.Send(bArray);
}

ただし、バイト長は、コレクション内のアイテムの量によって異なります。

クライアント側でこの情報を取得するための実行可能なソリューションは何ですか?

前もって感謝します。

4

1 に答える 1

3

配列を送信する前にサイズを送信して、相手側が読み取る量を知る必要があります。

于 2013-06-03T13:34:10.420 に答える