コード例 #1
0
ファイル: SocketClient.cs プロジェクト: ypfly/SockClient
 public void SendMsg(object sender,string msg)
 {
     string strMsg = Dns.GetHostName()+ "" + "   -->" + msg ;
     MyMessage my = new MyMessage();
     my.id = "0";
     my.msg = msg;
     byte[] arrMsg = Encoding.UTF8.GetBytes(JsonHelper.ToJson(my));
     sockClient.Send(arrMsg); // 发送消息;
     md.DoShowMSGFunc(sender, strMsg);
 }
コード例 #2
0
ファイル: SocketClient.cs プロジェクト: ypfly/SockClient
        void RecMsg(object sender)
        {
            while (true)
            {
                // 定义一个2M的缓存区;
                byte[] arrMsgRec = new byte[1024 * 1024 * 2];
                sockClient.Receive(arrMsgRec);

                MyMessage mmsg = new MyMessage ();
                mmsg= JsonHelper.DeserializeJsonToObject<MyMessage>(Encoding.UTF8.GetString(arrMsgRec));

                // 将接受到的数据存入到输入  arrMsgRec中;
                if(mmsg==null)
                {
                    md.DoShowMSGFunc(sender, "异常:没有获取到数据");
                    return;
                }

                if (mmsg.id == "0") // 表示接收到的是消息数据;
                {
                    md.DoShowMSGFunc(sender, "服务器:" + mmsg.msg);
                }
                //if (arrMsgRec[0] == 1) // 表示接收到的是文件数据;
                //{

                //    try
                //    {
                //        SaveFileDialog sfd = new SaveFileDialog();

                //        if (sfd.ShowDialog(this) == System.Windows.Forms.DialogResult.OK)
                //        {// 在上边的 sfd.ShowDialog() 的括号里边一定要加上 this 否则就不会弹出 另存为 的对话框,而弹出的是本类的其他窗口,,
                //           这个一定要注意!!!【解释:加了this的sfd.ShowDialog(this),“另存为”窗口的指针才能被SaveFileDialog的对象调用,
                //            若不加thisSaveFileDialog 的对象调用的是本类的其他窗口了,当然不弹出“另存为”窗口。】

                //            string fileSavePath = sfd.FileName;// 获得文件保存的路径;
                //            // 创建文件流,然后根据路径创建文件;
                //            using (FileStream fs = new FileStream(fileSavePath, FileMode.Create))
                //            {
                //                fs.Write(arrMsgRec, 1, length - 1);
                //                ShowMsg("文件保存成功:" + fileSavePath);
                //            }
                //        }
                //    }
                //    catch (Exception aaa)
                //    {
                //        MessageBox.Show(aaa.Message);
                //    }
                //}
            }
        }