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);
}
但是,字節長度將隨我的集合中的項目數量而變化。
在客戶端檢索這些信息的可行解決方案是什麼?
在此先感謝。
我該怎麼做?我需要兩個聽衆?我對套接字比較陌生。你能給我一個例子,或者將我鏈接到它的教程?謝謝。 –
幾分鐘後,我意識到這是我評論的多麼愚蠢。剛纔我注意到了SendBufferSize和ReceiveBufferSize。感謝老兄,併爲最後的評論感到抱歉。 –
@AndréSilva:那根本不是我的意思。在傳輸字節之前,將大小傳輸爲四字節整數。 – SLaks