聊天室代码(C#)
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
实现用C#做一个聊天室客户端的代码:
using System;
using System.Collections.Generic;
using ponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using ;
using .Sockets;
using System.Windows.Forms;
namespace EasyChat
{
public partial class login_frm : Form
{
///
/// IP地址
///
private IPAddress _ipAddr;
#region登录窗体构造函数
///
///构造函数,自动生成
///
public login_frm()
{
InitializeComponent();
}
#endregion
#region登录窗体的私有方法
///
///验证登录信息
///
///
private bool ValidateInfo()
{
if (user_tb.Text.Trim() == string.Empty)
{
MessageBox.Show("请填写用户名!",
"提示",
MessageBoxButtons.OK,
rmation);
return false;
}
if (!IPAddress.TryParse(svrip_tb.Text, out _ipAddr)) {
MessageBox.Show("IP地址不合法!",
"提示",
MessageBoxButtons.OK,
rmation);
return false;
}
int _port;
if (!int.TryParse(svrport_tb.Text, out _port))
{
MessageBox.Show("端口号不合法!",
"提示",
MessageBoxButtons.OK,
rmation);
return false;
}
else
{
if (_port < 1024 || _port > 65535)
{
MessageBox.Show("端口号不合法!",
"提示",
MessageBoxButtons.OK,
rmation);
return false;
}
}
return true;
}
///
///取消,关闭窗体
///
///
///
private void cancel_btn_Click(object sender, EventArgs e)
{
this.Close();
}
///
///登录
///
///
///
private void login_btn_Click(object sender, EventArgs e)
{
//验证数据合法性
if (!ValidateInfo())
{
return;
}
int port = int.Parse(svrport_tb.Text);
//向服务器发出连接请求
TCPConnection conn = new TCPConnection(_ipAddr, port);
TcpClient _tcpc = conn.Connect();
if (_tcpc == null)
{
MessageBox.Show("无法连接到服务器,请重试!",
"错误",
MessageBoxButtons.OK,
MessageBoxIcon.Exclamation);
}
else
{
NetworkStream netstream = _tcpc.GetStream();//提供用于访问网络的基本数据流
//向服务器发送用户名以确认身份
netstream.Write(Encoding.Unicode.GetBytes(user_tb.Text), 0, Encoding.Unicode.GetBytes(user_tb.Text).Length);
//得到登录结果
byte[] buffer = new byte[50];
netstream.Read(buffer, 0, buffer.Length);//该方法将数据读入 buffer 参数并返回成功读取的字节数。如果没有可以读取的数据,则 Read 方法返回 0。
string connResult = Encoding.Unicode.GetString(buffer).TrimEnd('\0');
if (connResult.Equals("cmd::Failed"))
{
MessageBox.Show("您的用户名已经被使用,请尝试其他用户名!",
"提示",