基本信息
源码名称:QM聊天工具(基于 socket)
源码大小:5.98M
文件格式:.rar
开发语言:C#
更新时间:2021-02-27
   友情提示:(无需注册或充值,赞助后即可获取资源下载链接)

     嘿,亲!知识可是无价之宝呢,但咱这精心整理的资料也耗费了不少心血呀。小小地破费一下,绝对物超所值哦!如有下载和支付问题,请联系我们QQ(微信同号):813200300

本次赞助数额为: 20 元 
   源码介绍

service = new Services(txtIP.Text,Convert.ToInt32(txtPort.Text));
             sSocket = service.StartServiceListen();
            //监听端口
            new Task(() => {
                while (true)
                {
                    //等待连接
                    Socket socket= sSocket.Accept();
                    appendTextInRichText(socket.RemoteEndPoint.ToString() ": 已连接");    
                    AddLineUserInfo(socket);
                    //接收消息
                    new Task(()=> {
                        while (true)
                        {
                            byte[] buff = new byte[1024 * 1024 * 2];
                            int r = socket.Receive(buff);
                            if (r==0)
                            {
                                continue;
                            }
                            string message = Encoding.UTF8.GetString(buff, 1, r - 1);
                            MessageTypeEnum mte = (MessageTypeEnum)Enum.Parse(typeof(MessageTypeEnum), buff[0].ToString());
                            appendTextInRichText("****  " socket.RemoteEndPoint ":" mte.ToString() "   ****");
                            switch (mte)
                            {
                                case MessageTypeEnum.获取附近的人:
                                    GetNearUser(socket);
                                    break;
                                case MessageTypeEnum.设置个人信息:
                                    SetPersonalInformation(message);
                                    break;
                                case MessageTypeEnum.服务器收文字:
                                    ServerReceiveText(socket, message);
                                    break;
                                case MessageTypeEnum.服务器收振动:
                                    ServerReceiveVibration(socket);
                                    break;
                                case MessageTypeEnum.服务器收文件:
                                    SendFileToService(buff);
                                    break;
                                case MessageTypeEnum.服务器转发文字:    
                                    TransmitText(socket, message.Split('|'));
                                    break;
                                case MessageTypeEnum.服务器转发振动:
                                    TransmitVibration(socket, message);
                                    break;
                                case MessageTypeEnum.服务器转发文件:
                                    TransmitFile(socket, buff);
                                    break;
                                default:
                                    break;    
                            }
                        }   
                    }).Start();
                }      
            }).Start();