ImageVerifierCode 换一换
格式:DOCX , 页数:8 ,大小:99.71KB ,
资源ID:2099842      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/2099842.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(C#下如何实现服务器客户端的聊天程序.docx)为本站会员(b****1)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

C#下如何实现服务器客户端的聊天程序.docx

1、C#下如何实现服务器客户端的聊天程序最近也在接触SOCKET编程,在当今这样一个网络时代,很多技术都以网络为中心在诞生,至少我认为是这样的,而SOCKET套接字接口,在实现网络通讯上处于关键地位,所以不会SOCKET是不行的。首先,本文主要是针对那些刚接触SOCKET编程的朋友,如果是高手,就可以不看此文啦,可以去陪陪老婆,比如逛街或看电视.在开始之前,我们需要预习一些基础知识:什么是SOCKET套接字?SOCKET通常有那几种数据格式?线程的概念?(以上基本知识我就不讲了,网上这方面资料很多的,大家找资料看下吧)我要介绍的是一个服务器端+客户端的聊天系统,程序比较简单,我先把程序运行的界面给

2、大家看下:上面是服务器端运行界面;下面把客户端界面贴给大家看下:功能比较简单,服务器的端口号可以在“系统菜单”里面的参数配置进行修改的。看了上面的图,下面我们就给大家把代码贴出来:(因为程序比较简单,所以本人就没有去分层啦)服务器端代码:1usingSystem;2usingSystem.Collections.Generic;3usingSystem.ComponentModel;4usingSystem.Data;5usingSystem.Drawing;6usingSystem.Text;7usingSystem.Windows.Forms;89usingSystem.Net;10usi

3、ngSystem.Net.Sockets;11usingSystem.Threading;12usingSystem.Xml;1314namespaceServer1516publicpartialclassServerMain:Form1718publicServerMain()1920InitializeComponent();212223privatevoidServerMain_Load(objectsender,EventArgse)2425this.CmdStar.Enabled=true;26this.CmdStop.Enabled=false;272829privatevoid

4、配置参数ToolStripMenuItem_Click(objectsender,EventArgse)3031SetTSet=newSet();32TSet.ShowDialog();333435privatevoid关于ToolStripMenuItem_Click(objectsender,EventArgse)3637AboutTAbout=newAbout();38TAbout.Show();3940/41/获得XML文件中的端口号42/43/44privateintGetPort()4546try4748XmlDocumentTDoc=newXmlDocument();49TDoc

5、.Load(Settings.xml);50stringTPort=TDoc.GetElementsByTagName(ServerPort)0.InnerXml;51returnConvert.ToInt32(TPort);525354catchreturn6600;/默认是6600555657/声明将要用到的类58privateIPEndPointServerInfo;/存放服务器的IP和端口信息59privateSocketServerSocket;/服务端运行的SOCKET60privateThreadServerThread;/服务端运行的线程61privateSocketClien

6、tSocket;/为客户端建立的SOCKET连接62privateintClientNumb;/存放客户端数量63privatebyteMsgBuffer;/存放消息数据6465privatevoidCmdStar_Click(objectsender,EventArgse)6667ServerSocket=newSocket(AddressFamily.InterNetwork,SocketType.Stream,ProtocolType.Tcp);68ServerInfo=newIPEndPoint(IPAddress.Any,this.GetPort();69ServerSocket.B

7、ind(ServerInfo);/将SOCKET接口和IP端口绑定70ServerSocket.Listen(10);/开始监听,并且挂起数为107172ClientSocket=newSocket65535;/为客户端提供连接个数73MsgBuffer=newbyte65535;/消息数据大小74ClientNumb=0;/数量从0开始统计7576ServerThread=newThread(RecieveAccept);/将接受客户端连接的方法委托给线程77ServerThread.Start();/线程开始运行7879CheckForIllegalCrossThreadCalls=fal

8、se;/不捕获对错误线程的调用8081this.CmdStar.Enabled=false;82this.CmdStop.Enabled=true;83this.StateMsg.Text=服务正在运行+运行端口:+this.GetPort().ToString();84this.ClientList.Items.Add(服务于+DateTime.Now.ToString()+开始运行.);858687/接受客户端连接的方法88privatevoidRecieveAccept()8990while(true)9192ClientSocketClientNumb=ServerSocket.Acc

9、ept();93ClientSocketClientNumb.BeginReceive(MsgBuffer,0,MsgBuffer.Length,0,newAsyncCallback(RecieveCallBack),ClientSocketClientNumb);94this.ClientList.Items.Add(ClientSocketClientNumb.RemoteEndPoint.ToString()+成功连接服务器.);95ClientNumb+;96979899/回发数据给客户端100privatevoidRecieveCallBack(IAsyncResultAR)1011

10、02try103104SocketRSocket=(Socket)AR.AsyncState;105intREnd=RSocket.EndReceive(AR);106for(inti=0;iClientNumb;i+)107108if(ClientSocketi.Connected)109110ClientSocketi.Send(MsgBuffer,0,REnd,0);111112RSocket.BeginReceive(MsgBuffer,0,MsgBuffer.Length,0,newAsyncCallback(RecieveCallBack),RSocket);113114115116catch117118119120privatevoidCmdStop_Click(objectsender,EventArgse)121122ServerThread.Abort();/线程终止123ServerSocket.Close();/关闭SOCKET

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1