小弟正在做一个即时通讯的软件,遇到个问题:对方发第一条消息过来时,打开在线用户列表中对方的号码接收时,没消息,只有保持接收对话框开着才能正常收发信息.
while( true )
{
if(!this.news.Equals(""))
{
try
{
byte[] Snews = System.Text.Encoding.UTF8.GetBytes(this.news.ToCharArray());
this.server.Send(Snews);
}
catch
{
System.Windows.Forms.MessageBox.Show("发送消息出错!");
}
this.news = "";
}
//wait one second
Thread.Sleep(1000);
}我在发送信息完后加了一条this.news = "",否则接收方会重复收到N条信息,但现在就出现了上面说的问题,请高手指点
while( true )
{
if(!this.news.Equals(""))
{
try
{
byte[] Snews = System.Text.Encoding.UTF8.GetBytes(this.news.ToCharArray());
this.server.Send(Snews);
}
catch
{
System.Windows.Forms.MessageBox.Show("发送消息出错!");
}
this.news = "";
}
//wait one second
Thread.Sleep(1000);
}我在发送信息完后加了一条this.news = "",否则接收方会重复收到N条信息,但现在就出现了上面说的问题,请高手指点
socket连接是可靠连接,必须一直开着服务端和客户端才可以通信,如果想可以关闭,试试UDP
对了,QQ是用HTTP协议传输,由服务器转发的
QQ消息发送成功会有一个返回信息返回给发送消息的一端,连续发送几次超时就把消息发送给服务器保存,等你上线的时候服务器查找你的小心再发送给你
QQ:109072507