110,546
社区成员
发帖
与我相关
我的任务
分享
TcpListener listener = new TcpListener(IPAddress.Parse(ipLocal), port);
listener.Start();
for (; ; )
{
string recv_msg = new StreamReader(listener.AcceptTcpClient().GetStream()).ReadLine();
AsyncEventHandler asy = new AsyncEventHandler(p.Send);
asy.BeginInvoke(recv_msg, new AsyncCallback(p.callBack), asy);
//asy.EndInvoke(ia);
}
Send()的方法为:lib.sendMessage(user_email, msg);
在sendMessage()方法体里这样添加消息队列:
public void sendMessage(string msn_email, string msg)
{msn_email = msn_email.ToLowerInvariant();
Contact contact = messenger.ContactList[msn_email];
Dictionary <DateTime, string> dic_msgs = new Dictionary <DateTime, string>(0);
if (_user_messages.ContainsKey(msn_email))
{
// 如果原来有此人的未发出消息,则增加
dic_msgs = _user_messages[msn_email];
dic_msgs.Add(DateTime.Now, msg);
_user_messages[msn_email] = dic_msgs;
}
else
{
// 如果没有此人的消息,则创建
dic_msgs.Add(DateTime.Now, msg);
if (dic_msgs != null)
{
_user_messages.Add(msn_email, dic_msgs);
}
}