[计算机]bs模式下socket即时通讯

[计算机]bs模式下socket即时通讯

ID:25298876

大小:52.18 KB

页数:4页

时间:2018-11-19

[计算机]bs模式下socket即时通讯_第1页
[计算机]bs模式下socket即时通讯_第2页
[计算机]bs模式下socket即时通讯_第3页
[计算机]bs模式下socket即时通讯_第4页
资源描述:

《[计算机]bs模式下socket即时通讯》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库

1、//实现即时通讯的方法和变量privateintmaxPacket=512;///

///用于接受消息的线程///privateThreadthread=null;//////用于接受和发送的网络流,从登录窗体得到///privateNetworkStreamnetstrm=null;//////服务器套接字的字符串形式,从登录窗体得到/////stringstrpublic=null;#region实现及时提醒//

2、/

///提取命令///格式为两个一位整数拼接成的字符串。///第一位为0表示客户机向服务器发送的命令,为1表示服务器向客户机发送的命令。///第二位表示命令的含义,具体如下:///"11"-服务器要求客户机更新在线列表///"12"-服务器要求客户机做闪屏振动///default-接受用户消息或者系统消息的正文//////要解析的包含命令的byte数组,只提取前两个字节///拼接成的命令privatestr

3、ingDecodingBytes(byte[]s){//连接String的一个或多个实例returnstring.Concat(s[0].ToString(),s[1].ToString());}///

///接受消息的线程执行体///privatevoidReceiveMsg(){boolflag=true;while(flag){try{netstrm=(NetworkStream)Session["netstream"];byte[]packet=newbyte[maxPacket];

4、netstrm.Read(packet,0,packet.Length);stringcmd=DecodingBytes(packet);switch(cmd){///"11"-服务器要求客户机更新在线列表///default-接受用户消息或者系统消息的正文case"11":{break;}default:{stringdisplaytxt=Encoding.Unicode.GetString(packet);Session["txtMsg"]=displaytxt;//Page.ClientScript.RegisterSt

5、artupScript(GetType(),"","");break;}}}catch(SocketException){Thread.CurrentThread.Abort();}}}#endregionprotectedvoidPage_Load(objectsender,EventArgse){if(!IsPostBack){//为会话创建线程thread=newThread(newThreadStart(ReceiveMsg));thre

6、ad.Start();}}1)向操作系统注册:让操作系统将一个端口和服务器通讯进程绑定。这个端口就代表了这通讯进程。ServerSocketss=newServerSocket(port),服务端通讯进程在port端口监听。2)Socketsocket=serverSocket.accept();取出一个客户端的socket连接。如果没有客户端的连接到来,就一直等待,也就是阻塞状态3)通过socket和客户端socket通讯,怎么通讯呢?通过socket.getOutputSteam(),socket.getInputStre

7、am()进行流的传递。客户端:   1)和服务器建立连接:Socketsocket=newSocket(ip地址,port);          如果创建socket对象成功,代表连接建立。如果抛出异常,连接建  立不成功。   2)通过socket获取输入输出流对象。socket.getInputStream(),socket.getOutputStream().

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。