C#和数据库应用实训报告(4)

2019-04-09 19:07

附录

{

string command = message.Substring(0, COMMANDLENGTH); if (command == LOGINCOMMAND) {

string phone = message.Substring(COMMANDLENGTH); string[] phoneArr = phone.Split(','); //清空用户列表

allClients.Clear(); //显示好友列表

List ll = D_ToPerson.GetAddFriends(MySelf.Phone); Lb_UserList.Items.Clear(); //添加好友列表

foreach (M_Friend M_P in ll) {

Lb_UserList.Items.Add(M_P.Receive.Phone); }

//显示群列表

List l = D_ToPerson.GetGroupList(GroupName.GroupName); Lb_groupList.Items.Clear(); //添加聊天信息

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 l = D_ToPerson.GetInfo(MySelf.Phone, phone); //清空聊天列表

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 l = D_ToPerson.GetInfo(MySelf.Phone, ChatUser); //清空聊天列表

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 l = D_ToPerson.GetInfo(MySelf.Phone, ChatUser);

//清空聊天列表

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


C#和数据库应用实训报告(4).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:钢结构人行天桥施工方案

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: