仿QQ聊天软件--基于局域网TCP蓝精灵聊天软件的实现(6)

2018-12-19 22:47

registFlag = 0; }

msgG = client.SendReceive(msg); //对登录验证结果给出登录响应 switch (msgG.msgCommand) {

caseMsgCommand.Logined: Login_OK(); break;

caseMsgCommand.Logining:

MessageBox.Show(\用户名或密码不正确\); registFlag = 1; break; default:

MessageBox.Show(\); break; } }

catch(Exception ex) {

MessageBox.Show(ex.Message); } }

privatevoid Login_OK() {

FriendList friList = newFriendList(); Hide();

friList.Activate(); friList.Visible = false;

if (friList.ShowDialog(this) == DialogResult.Cancel) {

friList.Dispose(); TCPSocket client = newTCPSocket(); client.ShutSocket(); Close(); } }

privatevoid button_Quit_Click(object sender, EventArgs e) {

TCPSocket client = newTCPSocket(); client.ShutSocket(); Close(); }

b.注册界面:

23

privatevoid button_register_Click(object sender, EventArgs e) {

if (tb_Age.Text == \ || tb_UserName.Text == \ || tb_PassWord.Text == \) {

MessageBox.Show(\注册信息不能留空\); return; }

//赋值注册信息

ClassMessage msg = newClassMessage(); msg.UserName = tb_UserName.Text; msg.PassWord = tb_PassWord.Text;

msg.Sex = radioB_Boy.Checked ? \男\ : \女\; msg.Age = int.Parse(tb_Age.Text); msg.msgCommand = MsgCommand.Registering; //发送注册信息并获取注册结果 TCPSocket client = newTCPSocket(); ClassMessage msgG = newClassMessage(); client.Connection();

msgG = client.SendReceive(msg); //给出对注册结果响应 switch (msgG.msgCommand) {

caseMsgCommand.Registered: MessageBox.Show(\注册成功\);

DialogResult = DialogResult.OK; break;

caseMsgCommand.Registering:

MessageBox.Show(\该用户名已被使用\); break; default:

MessageBox.Show(\); break; } }

privatevoid button_Cancel_Click(object sender, EventArgs e) {

DialogResult = DialogResult.Cancel; }

c.好友列表界面:

privatevoid FriendList_Load(object sender, EventArgs e) {

Hide();

//初始化(显示用户及好友信息) ShowMymsg();

24

//初始信息添加完毕显示窗体 Show(); }

privatevoid ShowMymsg() {

//显示用户名

BS_Client CliLogin = newBS_Client();

label_userName.Text = CliLogin.GetUserName(); CliLogin.ClearUserName(); //获取相应信息前变量定义

TCPSocket client = newTCPSocket(); ClassMessage msgG = newClassMessage(); ClassMessage msg = newClassMessage(); msg.UserName = label_userName.Text; //获取并显示用户信息

msg.msgCommand = MsgCommand.Mymsggeting; msgG = client.SendReceive(msg); switch (msgG.msgCommand) {

caseMsgCommand.Mymsggot: if (msgG.Face != null) {

Image header = SetByteToImage(msgG.Face); pb_headSculpture.Image = header; } else

{

pb_headSculpture.Image = iList.Images[0]; } if (msgG.Sign == 0)

label_State.Text = \在线\; break; default:

MessageBox.Show(\); break; }

//向列表中添加好友信息 AddFriends(client, msg); }

privatevoid AddFriends(TCPSocket client, ClassMessage msg) {

int i = 0, j; //循环参数

//数据更新,UI暂时挂起,直到EndUpdate绘制控件,可以有效避免闪烁并大大提高加载速度 LV_Friends.BeginUpdate();

25

LV_Friends.View = View.Details; //添加列表头

LV_Friends.Columns.Add(\我的好友\, 190, HorizontalAlignment.Left); int temp = 1;

ClassMessage[] msgF = newClassMessage[256]; FriendMsg[] friendsMsg = newFriendMsg[256]; //获取并显示用户好友信息

msg.msgCommand = MsgCommand.FriendList; //获取好友信息

ClassMessage msgG = client.SendReceive(msg); //获取信息列表 while (true) {

if (msgG.msgCommand != MsgCommand.FriendList) { break; }

msgF[i++] = msgG; //循环接收好友信息

msgG = client.ReceiveMsg(); }

//获取并显示好友信息

for (j = i - 1; j >= 0; j--) {

friendsMsg[j]=

(FriendMsg)newClassSerializers().DeSerializeBinary(newMemoryStream(msgF[j].Data)); if (friendsMsg[j].Face == null) {

temp = index - 1; index = 0; } else {

Image image = SetByteToImage(friendsMsg[j].Face);

imageList1.Images.Add(friendsMsg[j].UserName, image); }

LV_Friends.Items.Add(friendsMsg[j].UserName, index); index = ++temp; }

//结束数据处理

LV_Friends.EndUpdate(); }

privatevoid button_Search_Click(object sender, EventArgs e) {

26

if (textBox_Search.Text == \) {

MessageBox.Show(\好友名称不能为空\); return; }

SearchFriends searchfri = newSearchFriends(textBox_Search, label_userName); searchfri.Activate(); searchfri.Visible = false;

if (searchfri.ShowDialog(this) == DialogResult.OK) {

searchfri.Dispose(); textBox_Search.Text = \; //清空listview

LV_Friends.Clear(); //更新好友列表

TCPSocket client = newTCPSocket(); ClassMessage msg = newClassMessage(); msg.UserName = label_userName.Text; AddFriends(client, msg); }

else searchfri.Dispose(); }

privatevoid StartChat() {

Hide();

Chat CwithFri = newChat(LV_Friends.Items[LV_Friends.SelectedIndices[0]], label_userName.Text); CwithFri.Activate(); CwithFri.Visible = false;

if (CwithFri.ShowDialog(this) == DialogResult.Cancel) {

CwithFri.Dispose(); Show(); } }

privatevoid ItemDoubleClick(object sender, MouseEventArgs e) {

StartChat(); }

privatevoid删除好友ToolStripMenuItem_Click(object sender, EventArgs e) {

TCPSocket client = newTCPSocket(); ClassMessage msgG = newClassMessage(); ClassMessage msg = newClassMessage();

27


仿QQ聊天软件--基于局域网TCP蓝精灵聊天软件的实现(6).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:立即行动起来 努力开创我镇老龄工作新局面

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

马上注册会员

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