资源简介
C# tcp 多线程聊天室 C# tcp 多线程聊天室C# tcp 多线程聊天室C# tcp 多线程聊天室C# tcp 多线程聊天室C# tcp 多线程聊天室
代码片段和文件信息
using System;
using System.Collections.Generic;
using System.Text;
using System.Threading;
using System.Net.Sockets;
using System.IO;
using FeiMsgType;
namespace Fei
{
///
/// 和客户端连接的通道类(内含Socket及ClientUser)
///
class ClientConnection
{
#region 连接通道所属用户信息 - User
ClientUser user = null;
///
/// 连接通道所属用户信息
///
public ClientUser User
{
get { return user; }
set { user = value; }
}
#endregion
Thread threadClient = null;
Socket socket = null;
string strEndpoint;
FrmMain frmMain = null;
///
/// 是否退出-true退出/false运行
///
bool doesClose = false;
#region 构造函数
public ClientConnection(FrmMain frmMain Socket socket)
{
InitConnection(frmMain socket);
}
public ClientConnection(FrmMain frmMain Socket socket ClientUser user)
{
InitConnection(frmMain socket);
this.user = user;
}
#endregion
#region 初始化连接 - InitConnection(FrmMain frmMain Socket socket)
///
/// 初始化连接
///
/// 窗体
/// 连接套接字
public void InitConnection(FrmMain frmMain Socket socket)
{
if (null == frmMain || null == socket) throw new UnPrepareConnectionException();//如果参数不足则抛出自定义异常
this.frmMain = frmMain;
this.socket = socket;
this.strEndpoint = socket.RemoteEndPoint.ToString();
threadClient = new Thread(WatchMsg);
threadClient.IsBackground = true;
threadClient.Start();
}
#endregion
#region -监听客户端消息 - WatchMsg()
private void WatchMsg()
{
string strMsgRec = string.Empty;
while (!doesClose)
{
try
{
byte[] byteMsgRec = new byte[1024 * 1024 * 4];
int length = socket.Receive(byteMsgRec byteMsgRec.Length SocketFlags.None);
if (length > 0)
{
strMsgRec = Encoding.UTF8.GetString(byteMsgRec 1 length - 1);//获取标志符后的消息字符串
if (byteMsgRec[0] == (byte)MsgType.UserMsg)//用户消息
{
MsgInfo msgInfo = new MsgInfo(strMsgRec);
if (msgInfo.UId != string.Empty)//有效消息
{
if (msgInfo.ToUid != string.Empty && msgInfo.IsPrivate)//如果接收人不为空而且是私聊信息
{
frmMain.SendMsgUserToSingle(msgInfo.ToUid msgInfo.ToTransString() MsgType.UserMsg);
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 1890 2011-04-12 10:18 ChatRoom.sln
..A..H. 41472 2011-04-14 14:20 ChatRoom.suo
文件 40960 2011-04-14 13:54 Fei\bin\Debug\Fei.exe
文件 58880 2011-04-14 13:54 Fei\bin\Debug\Fei.pdb
文件 5632 2005-11-11 22:25 Fei\bin\Debug\Fei.vshost.exe
文件 20480 2011-04-12 10:18 Fei\bin\Debug\FeiMsgType.dll
文件 32256 2011-04-12 10:18 Fei\bin\Debug\FeiMsgType.pdb
文件 11028 2011-04-10 19:45 Fei\ClientConnection.cs
文件 3547 2011-04-10 19:39 Fei\Fei.csproj
文件 18760 2011-04-12 10:36 Fei\FrmMain.cs
文件 31576 2011-04-11 08:24 Fei\FrmMain.Designer.cs
文件 5814 2011-04-11 08:24 Fei\FrmMain.resx
文件 844 2011-04-12 10:18 Fei\obj\Debug\Fei.csproj.GenerateResource.Cache
文件 40960 2011-04-14 13:54 Fei\obj\Debug\Fei.exe
文件 180 2011-04-12 10:18 Fei\obj\Debug\Fei.FrmMain.resources
文件 58880 2011-04-14 13:54 Fei\obj\Debug\Fei.pdb
文件 180 2011-04-12 10:18 Fei\obj\Debug\Fei.Properties.Resources.resources
文件 2570 2011-04-12 10:18 Fei\obj\Debug\ResolveAssemblyReference.cache
文件 1548 2011-04-14 14:15 Fei\obj\Fei.csproj.FileListAbsolute.txt
文件 464 2011-04-02 18:13 Fei\Program.cs
文件 1166 2011-04-02 18:03 Fei\Properties\AssemblyInfo.cs
文件 2862 2011-04-02 18:03 Fei\Properties\Resources.Designer.cs
文件 5612 2011-04-02 18:03 Fei\Properties\Resources.resx
文件 1088 2011-04-02 18:03 Fei\Properties\Settings.Designer.cs
文件 249 2011-04-02 18:03 Fei\Properties\Settings.settings
文件 422 2011-04-07 23:22 Fei\UnPrepareConnectionException.cs
文件 20480 2011-04-12 10:18 FeiMsgType\bin\Debug\FeiMsgType.dll
文件 32256 2011-04-12 10:18 FeiMsgType\bin\Debug\FeiMsgType.pdb
文件 3777 2011-04-10 20:13 FeiMsgType\ClientUser.cs
文件 2240 2011-04-10 20:06 FeiMsgType\FeiMsgType.csproj
............此处省略68个文件信息
- 上一篇:C# 城市公交查询系统
- 下一篇:C#做的QQ仿QQ
相关资源
- C#做的QQ仿QQ
- C# 城市公交查询系统
- 搜索引擎的源代码使用C#编写
- C#简单学生信息管理系统
- 模糊均值聚类算法FCM(C#)
- C# 通过串口传递图片
- C#连接Oracle含源码和数据库
- C# 异步 SOCKET 服务和客户端
- vb.net 获取USB 摄像头 图像 Aforge方法
- C#如何实现图片查看器
- c#编写的简单运算器 含有代码 ,实现
- 金税接口调用
- 短路计算程序c#版
- 用C#编写的完整的CAD源码对于初学者很
- C#版医院门诊管理系统完整版附带数据
- Huber稳健估计
- C#调用金蝶登录窗口专业版12.2以后也
- C# 界面实现快速排序
- C#宾馆客房管理系统课设
- C# wpf 操作word Excel,
- 数学模拟钉板实验c#源码
- C# 图像处理软件及其源码
- C# DESC 加密解密
- 串口扫描枪 c# 最简程序源码
- 在C#中调用MapX[超级详细]pb、vb、delp
- c#操作文件实现日志功能
- 我用C#做的电子名片系统(带图片功能
- 操作系统 进程管理 C# VS2005
- ashxC#语言
- C#实现《CATIA二次开发技术基础》中的
评论
共有 条评论