资源简介
VS2010开发的,使用C#语言,采用多线程,基于Socket的聊天室程序,包括服务器端和客户端,学习Socekt的代码,大家互相交流。
代码片段和文件信息
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Net.Sockets;
using System.Text;
using System.Windows.Forms;
using System.Net;
using System.Threading;
namespace ChatRoomClient
{
public partial class FormChatClient : Form
{
public FormChatClient()
{
InitializeComponent();
}
private Thread threadclient = null;//客户端用于接收数据的线程
private Socket socketClient = null;//客户端用于接收数据的套接字
private void btnConnect_Click(object sender EventArgs e)
{
try
{
IPAddress ip = IPAddress.Parse(this.txtServerIp.Text.Trim());
IPEndPoint point = new IPEndPoint(ip int.Parse(this.txtPort.Text.Trim()));
socketClient = new Socket(AddressFamily.InterNetwork SocketType.Stream ProtocolType.Tcp);
socketClient.Connect(point);//不用监听直接创建连接
//开启一个线程实例
threadclient = new Thread(RecMsg);
//设为后台线程
threadclient.IsBackground = true;
//启动线程
threadclient.Start();
ShowMsg(“---------服务器连接成功--------“);
}
catch (Exception)
{
ShowMsg(“---------服务器不在线--------“);
}
}
//线程中用于接收数据的方法
void RecMsg()
{
while (true)
{
try
{
//创建一个字节数组接收数据
byte[] arrMsgRec = new byte[1024 * 1024 * 2];
//接收数据
int length = socketClient.Receive(arrMsgRec);
//将字节数组转换成字符串此时是将所有的元素都转成字符串了,而真正接收到的只有服务端发来的几个字符。
string strMsgRec = System.Text.Encoding.UTF8.GetString(arrMsgRec 0 length);
//将字符串显示到界面上
ShowMsg(“服务器:“+strMsgRec);
}
catch(Exception e)
{
ShowMsg(“-----服务器已经断开连接!-----“);
socketClient.Close();
//结束当前线程
Thread.CurrentThread.Abort();
}
}
}
//显示信息
private delegate void changeText(string msg);
///
/// 添加信息到文本框
///
///
void ShowMsg(string msg)
{
if (this.InvokeRequired)
{
this.BeginInvoke(new changeText(ShowMsg) msg);
}
else
{
txtMsg.AppendText(msg + “\r\n“);
}
}
///
/// 往服务器发送数据
///
///
///
private void btnSend_Click(object sen
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 1351 2012-05-21 17:24 聊天室.sln
.....H. 2054 2012-05-21 21:55 聊天室.sln.docstates.suo
..A..H. 29184 2012-05-21 21:55 聊天室.suo
文件 8 2012-05-21 21:55 _ReSharper.聊天室\AspFileDataCache.dat
文件 4 2012-05-21 15:56 _ReSharper.聊天室\Buildsc
文件 4 2012-05-21 15:56 _ReSharper.聊天室\Buildsc
文件 28 2012-05-21 15:56 _ReSharper.聊天室\Buildsc
文件 2260 2012-05-21 21:55 _ReSharper.聊天室\CompletionStatistics\Statistics.dat
文件 4 2012-05-21 15:56 _ReSharper.聊天室\ConditionalNames\.crc
文件 4 2012-05-21 15:56 _ReSharper.聊天室\ConditionalNames\.version
文件 576 2012-05-21 15:56 _ReSharper.聊天室\ConditionalNames\2\74cbf11.dat
文件 4 2012-05-21 15:56 _ReSharper.聊天室\ja
文件 4 2012-05-21 15:56 _ReSharper.聊天室\ja
文件 52629 2012-05-21 15:56 _ReSharper.聊天室\ja
文件 4 2012-05-21 15:56 _ReSharper.聊天室\JSTest\.crc
文件 4 2012-05-21 15:56 _ReSharper.聊天室\JSTest\.version
文件 209 2012-05-21 17:20 _ReSharper.聊天室\ModuleIds.xm
文件 4 2012-05-21 15:56 _ReSharper.聊天室\MVC\.crc
文件 4 2012-05-21 15:56 _ReSharper.聊天室\MVC\.version
文件 4 2012-05-21 15:56 _ReSharper.聊天室\NamedArguments\.crc
文件 4 2012-05-21 15:56 _ReSharper.聊天室\NamedArguments\.version
文件 472 2012-05-21 15:56 _ReSharper.聊天室\NamedArguments\2\74cbf11.dat
文件 922 2012-05-21 15:56 _ReSharper.聊天室\PersistenIdIndex.bin
文件 3457 2012-05-21 21:55 _ReSharper.聊天室\RecentItems\RecentFiles.dat
文件 4 2012-05-21 15:56 _ReSharper.聊天室\Resources\.crc
文件 4 2012-05-21 15:56 _ReSharper.聊天室\Resources\.version
文件 28 2012-05-21 15:56 _ReSharper.聊天室\Resources\3\115c85de.dat
文件 1502 2012-05-21 15:56 _ReSharper.聊天室\SymbolCache.bin
文件 4 2012-05-21 15:56 _ReSharper.聊天室\TagPrefixes\.crc
文件 4 2012-05-21 15:56 _ReSharper.聊天室\TagPrefixes\.version
............此处省略263个文件信息
- 上一篇:蚁群算法c#编程实现
- 下一篇:C#编程(纹理映射 OPENGL)
相关资源
- C#编程(纹理映射 OPENGL)
- 蚁群算法c#编程实现
- C#实现GPS时间的计算GPS周和秒
- C#图片转视频源码
- C#实现CAD绘图功能
- 基于C#的GPS数据采集源码
- 数字信号处理中C#语言求卷积
- C#项目管理系统
- 一个开源的C#蜘蛛爬虫程序,看了让你
- C# 论文:实验室设备管理系统+数据库
- C#中的DataGrid数据绑定代码
- c#版的SIFT算法
- C# 贪吃蛇游戏 绝对简单易懂
- C# Neo4jDriver操作Neo4j图形数据库底层代
- c# winform 多语言切换 本地化
- C# Winform线程创建子窗体
- c#编写简单的打地鼠小游戏源码
- 基于sql与c#的学生选课系统
- ECC算法 C#实现代码
- ArcEngine开发鹰眼功能C#实现
- C#调用WebService和开发wsdl
- c#客户端程序自动更新工具含源码
- 用C#2010编写K3插件
- c#驱动级模拟按键
- 源码10 C# 成绩管理系统 C# 成绩管理系
- C# onvif获取摄像头rtsp视频流地址和抓
- C#水平垂直图像镜像---C#数字图像处理
- C# SHA1withRsa签名函数,加解密
- c#访问oracle的几种方式源码
- C# 0/1背包问题过程演示源码
评论
共有 条评论