网站导航免费论文 原创论文 论文搜索 原创论文 网学软件 学术大家 资料中心 会员中心 问题解答 原创论文 论文素材 设计下载 最新论文 下载排行 论文上传 在线投稿 联系我们
返回网学首页
网学联系
最新论文 推荐专题 热门论文 素材专题
当前位置: 网学 > 编程文档 > C# > 正文
C# Socket实现简单的多人聊天
来源:Http://myeducs.cn 联系QQ:点击这里给我发消息 作者: 用户投稿 来源: 网络 发布时间: 12/10/14
下载{$ArticleTitle}原创论文样式
序的主入口点。
/// </summary>
[STAThread]
static void Main()
{
Application.Run(new Form1());
}

private void EstablishConnection()
{
statusBar1.Text = "正在连接到服务器";

try
{
clientsocket = new TcpClient(serveraddress,serverport);
ns = clientsocket.GetStream();
sr = new StreamReader(ns);
connected = true;

}
catch (Exception)
{
MessageBox.Show("不能连接到服务器!","错误",
MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
statusBar1.Text = "已断开连接";
}
}

private void RegisterWithServer()
{
lbChatters.Items.Clear();

clientname = clientName.Text;
try
{
string command = "CONN|" + clientname; //+"\r\n";
Byte outbytes = System.Text.Encoding.ASCII.GetBytes(command.ToCharArray());
ns.Write(outbytes,0,outbytes.Length);

string serverresponse = sr.ReadLine();
serverresponse.Trim();
string tokens = serverresponse.Split(''|'');
if(tokens[0] == "LIST")
{
statusBar1.Text = "已连接";
btnDisconnect.Enabled = true;
}
if(tokens != "")
{
for(int n=1; n<tokens.Length;n++)
lbChatters.Items.Add(tokens[n].Trim(new char{''\r'',''\n''}));
}
this.Text = clientname + ":已连接到服务器";

}
catch (Exception ex)
{
MessageBox.Show("注册时发生错误!"+ex.Message,"错误",
MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
connected = false;
}
}

private void ReceiveChat()
{
bool keepalive = true;
while (keepalive)
{
try
{
Byte buffer = new Byte[1024]; // 2048???
ns.Read(buffer,0,buffer.Length);
string chatter = System.Text.Encoding.ASCII.GetString(buffer);
string tokens = chatter.Split(new Char{''|''});

if (tokens[0] == "CHAT")
{
rtbChatIn.AppendText(tokens);
// if(logging)
// logwriter.WriteLine(tokens);
}
if (tokens[0] == "PRIV")
{
rtbChatIn.AppendText("Private from ");
rtbChatIn.AppendText(tokens.Trim() );
rtbChatIn.AppendText(tokens + "\r\n");
// if(logging)
// {
// logwriter.Write("Private from ");
// logwriter.Write(tokens.Trim() );
// logwriter.WriteLine(tokens + "\r\n");
// }
}
if (tokens[0] == "JOIN")
{
rtbChatIn.AppendText(tokens.Trim() );
rtbChatIn.AppendText(" has joined the Chat\r\n");
// if(logging)
// {
// logwriter.WriteLine(tokens+" has joined the Chat");
// }
string newguy = tokens.Trim(new char{''\r'',''\n''});
lbChatters.Items.Add(newguy);
}
if (tokens[0] == "GONE")
{
rtbChatIn.AppendText(tokens.Trim() );
rtbChatIn.AppendText(" has left the Chat\r\n");
// if(logging)
// {
// logwriter.WriteLine(tokens+" has left the Chat");
// }
lbChatters.Items.Remove(tokens.Trim(new char{''\r'',''\n''}));
}
if (tokens[0] == "QUIT")
{
ns.Close();
clientsocket.Close();
keepalive = false;
statusBar1.Text = "服务器端已停

网学推荐

免费论文

原创论文

浏览:
设为首页 | 加入收藏 | 论文首页 | 论文专题 | 设计下载 | 网学软件 | 论文模板 | 论文资源 | 程序设计 | 关于网学 | 站内搜索 | 网学留言 | 友情链接 | 资料中心
版权所有 QQ:3710167 邮箱:3710167@qq.com 网学网 [Myeducs.cn] 您电脑的分辨率是 像素
Copyright 2008-2015 myeducs.Cn www.myeducs.Cn All Rights Reserved
湘ICP备09003080号