附录
{
string command = message.Substring(0, COMMANDLENGTH); if (command == LOGINCOMMAND) {
string phone = message.Substring(COMMANDLENGTH); string[] phoneArr = phone.Split(','); //清空用户列表
allClients.Clear(); //显示好友列表
List
foreach (M_Friend M_P in ll) {
Lb_UserList.Items.Add(M_P.Receive.Phone); }
//显示群列表
List
foreach (M_Group M_G in l) {
Lb_groupList.Items.Add(M_G.GroupName); } }
//私聊
else if (command == TOPENSON) {
string len = message.Substring(COMMANDLENGTH, USERLENGTH.Length);
//手机号长度 int result = 0;
result = int.TryParse(len, out result) ? result : Convert.ToInt32(len.Substring(0, 1));
//发送者手机号 string phone = message.Substring(COMMANDLENGTH + USERLENGTH.Length, result); //刷新聊天列表
List
Lb_Message.Items.Clear(); //添加聊天信息
foreach (M_ToPerson M_P in l)
13
山东科技大学
{
Lb_Message.Items.Add(M_P.Send.UserName + \ \ Lb_Message.Items.Add(M_P.Contents); } }
//群聊
else if (command == TOGROUP) {
}
//添加好友
else if (command == ADDFRIEND) {
string state = message.Substring(COMMANDLENGTH, 2).Trim(); string userPhones = message.Substring(COMMANDLENGTH + 2); string[] arrUser = userPhones.Split(','); string sUserPhone = arrUser[0]; string rUserPhone = arrUser[1]; //请求添加 if (state == \ {
if (MessageBox.Show(string.Format(\【{0}】请求添加你为好友,是否接受?\好友申请\ DialogResult.Yes) {
//接受
bool b = D_ToPerson.ChangeFriendState(sUserPhone, rUserPhone, 1);
D_User dUser = new D_User();
M_User newUser = dUser.GetUserByPhone(sUserPhone); allClients.Add(newUser); //刷新用户列表 RFUserList();
//添加好友命令+好友状态+请求人电话,接收人电话
string sendMessage = ADDFRIEND + \sUserPhone;
//发送消息
SendMessage(sendMessage); } else {
//拒接添加
bool b = D_ToPerson.ChangeFriendState(sUserPhone, rUserPhone, -1);
14
附录
//添加好友命令+好友状态+请求人电话,接收人电话
string sendMessage = ADDFRIEND + \sUserPhone;
//发送消息
SendMessage(sendMessage); } }
//回复请求
else if (state == \ {
if (state == \ {
D_User dUser = new D_User();
M_User newUser = dUser.GetUserByPhone(sUserPhone); allClients.Add(newUser); //刷新用户列表 RFUserList();
MessageBox.Show(string.Format(\【{0}】接受你了添加好友申请。\
} else {
MessageBox.Show(string.Format(\【{0}】拒接你了添加好友申请。\
} } } }
//回调函数
public void OnDataReceive(IAsyncResult ia) {
int count = clientSocket.EndReceive(ia); //解码
string message = Encoding.UTF8.GetString(buffer, 0, count); //执行委托
this.Invoke(new UpdateData(AddMessage), message); buffer = new byte[SIZE]; //接收消息(异步接收)
clientSocket.BeginReceive(buffer, 0, SIZE, SocketFlags.None, OnDataReceive, null);
}
//刷新用户列表
public void RFUserList()
15
山东科技大学
{
//清空用户列表
Lb_UserList.Items.Clear(); //遍历添加新用户
foreach (M_User user in allClients) {
Lb_UserList.Items.Add(user.Phone); } }
//聊天对象
string ChatUser = \
int state = -1;//0为私聊。1群聊,-1没有聊天对象 //双击好友聊天
private void Lb_UserList_MouseDoubleClick(object sender, MouseEventArgs e) {
state = 0;
D_User getName = new D_User();
M_User GetName = getName.GetUserByPhone(ChatUser);
Lbl_User.Text = \您正在与:\进行对话\ //刷新聊天列表
List
Lb_Message.Items.Clear(); //添加聊天信息
foreach (M_ToPerson M_P in l) {
Lb_Message.Items.Add(M_P.Send.UserName + \ \ Lb_Message.Items.Add(M_P.Contents); } }
private void Btn_Send_Click(object sender, EventArgs e) {
string message = \ if (ChatUser != \ {
if (Txt_Message.Text != \ {
//私聊
if (state == 0) {
string len = \
if (ChatUser.Length > 9) {
len = ChatUser.Length.ToString();
16
附录
} else {
//个位数的情况补齐两位
len = ChatUser.Length.ToString() + \ }
//私聊命令+用户名或手机号长度(用于截取字符串)+聊天对象+发送的消息
message = TOPENSON + len + ChatUser + Txt_Message.Text; DateTime now = DateTime.Now; //将聊天消息保存到数据库
bool b = D_ToPerson.SaveInfo(MySelf.Phone, ChatUser, Txt_Message.Text);
if (b) {
//发送消息
SendMessage(message); //刷新聊天列表
List
//清空聊天列表
Lb_Message.Items.Clear(); //添加聊天信息
foreach (M_ToPerson M_P in l) {
Lb_Message.Items.Add(M_P.Send.UserName + \ \+ M_P.SendTime);
Lb_Message.Items.Add(M_P.Contents); }
Txt_Message.Text = \ } }
//群聊
else if (state == 1){ } } else {
MessageBox.Show(\输入消息不能为空!\ } } else {
17
百度搜索“77cn”或“免费范文网”即可找到本站免费阅读全部范文。收藏本站方便下次阅读,免费范文网,提供经典小说综合文库C#和数据库应用实训报告(4)在线全文阅读。
相关推荐: