ソケット接続を介してオブジェクトのリストを送信します。私はWCFサービスがより良い選択肢になることは知っていますが、それは私の選択肢ではありません。ソケットプログラミング例外XML文書(170,46)にエラーがあります
私は
private void tm_Tick(object sender, EventArgs e)
{
XmlSerializer formatter = new XmlSerializer(typeof(List<Objects.PIP>));
MemoryStream stream = new MemoryStream(1024);
formatter.Serialize(stream, Repository.GlobalRepository.PIPInformation);
byte[] bt = stream.ToArray();
foreach (Communication.Client Client in server.ClientList)
{
Client.SendMessage(bt);
}
stream.Flush();
}
public void SendMessage(Byte[] bytesSent)
{
SocketAsyncEventArgs writeEventArgs = new SocketAsyncEventArgs();
writeEventArgs.SetBuffer(bytesSent, 0, bytesSent.Length);
socket.SendAsync(writeEventArgs);
}
が正常に動作するようにデータを送信するためにこのコードを使用しています。
私はスレッドでこのコードを使用しています。
void ReceiveData()
{
try
{
while (true)
{
if (disposed == true)
return;
data = new byte[socket.ReceiveBufferSize];
var recv = socket.Receive(data);
XmlSerializer formatter = new XmlSerializer(typeof(List<Object.PIP>));
MemoryStream stream = new MemoryStream(data);
**Classes.TickerInformation.PIPList= (List<Object.PIP>)formatter.Deserialize(stream);**
}
socket.Close();
return;
}
catch (Exception ex)
{
}
}
例外が発生しましたXML文書(170,46)にエラーがあります。この行の中で: Classes.TickerInformation.PIPList =(リスト)formatter.Deserialize(ストリーム);
私はすべてのデータが受信されていないと仮定しているため、これは起こっています。
さらに、メッセージの前にメッセージの長さを送信することは別のオプションです –
urレスポンスにお礼ありがとうございます。 – thewayman
はい、絶対に...しかし、後半にメッセージが表示されたらどうしたらいいですか? – Aliostad