我的程序与服务器建立连接后,把服务器发来的信息进行处理:1、当发来的信息为 111∵111,222,333,444,555∵
时进行"∵"分割menutext,将tempf[1]进行","分割menutextTemp
后将menutextTemp的内容逐项添加到menulistBox中!
我的程序实现了这个功能,可是但正常判别了几次后就會出錯一次!
正常的情況下被∵分割后應該menutext.Lenght=3,出錯時menutext.Lenght<3!
隔幾次正常就會出現出錯一次,是不是我有什麽資源沒有釋放,接受的信息填滿后,
程序自動釋放再接受時,傳來的數據被分開了?如果是這樣請您告訴我該怎樣做好嗎?
謝謝了!(可以确定服务器发送没有问题!)
代码如下:
while(!control)
{
try
{
netStream = myClient.GetStream();
byte[] messsageByte = new Byte[4096];
netStream.Read(messsageByte,0,messsageByte.Length );
readNessage = System.Text.Encoding.Default.GetString(messsageByte);
netStream.Flush();
string[] menutext=readNessage.Split('∵');
if(menutext.Length=3)
{
menulistBox.Items.Clear();
string[] menutextTemp=menutext[1].Split(',');
menulistBox.Items.AddRange(menutextTemp);
}
}
时进行"∵"分割menutext,将tempf[1]进行","分割menutextTemp
后将menutextTemp的内容逐项添加到menulistBox中!
我的程序实现了这个功能,可是但正常判别了几次后就會出錯一次!
正常的情況下被∵分割后應該menutext.Lenght=3,出錯時menutext.Lenght<3!
隔幾次正常就會出現出錯一次,是不是我有什麽資源沒有釋放,接受的信息填滿后,
程序自動釋放再接受時,傳來的數據被分開了?如果是這樣請您告訴我該怎樣做好嗎?
謝謝了!(可以确定服务器发送没有问题!)
代码如下:
while(!control)
{
try
{
netStream = myClient.GetStream();
byte[] messsageByte = new Byte[4096];
netStream.Read(messsageByte,0,messsageByte.Length );
readNessage = System.Text.Encoding.Default.GetString(messsageByte);
netStream.Flush();
string[] menutext=readNessage.Split('∵');
if(menutext.Length=3)
{
menulistBox.Items.Clear();
string[] menutextTemp=menutext[1].Split(',');
menulistBox.Items.AddRange(menutextTemp);
}
}
正常因該是
111∵111,222,333,444,555∵
會出現一次
111∵111,222,333,
444,555∵
這種情況!這種情況時就不能正確判定了!
while(!control)
{
try
{
netStream = myClient.GetStream();
byte[] messsageByte = new Byte[4096];
netStream.Read(messsageByte,0,messsageByte.Length );
readNessage = System.Text.Encoding.Default.GetString(messsageByte);
netStream.Flush();
readNessage=readNessage.Replace("∵",",");//把∵全部用,代替
string[] menutext=readNessage.Split(',');
menulistBox.Items.Clear();
menulistBox.Items.AddRange(menutext);
}
监视看看各个敏感的环节,比如menutext数组中到底有几个元素?它们的值如何?这样对分析错误就很方便了。