A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 杨曾荣 中级黑马   /  2012-3-21 14:42  /  1602 人查看  /  5 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

弄了半天也不知道哪里错了问题,看一吧
void ReceiveMsg(Object objSocket)
        {
            Socket socketRec = objSocket as Socket;
            while (true)
            {
                byte[] bytes = new byte[1024 * 1024];
                int len = socketRec.Receive(bytes);
                if (bytes[0] == 0)
                {
                    string message = System.Text.Encoding.UTF8.GetString(bytes, 0, len);
                    ShowMsg(message);
                }
                else if (bytes[0]==1)
                {
                    SaveFileDialog sfd = new SaveFileDialog();
                    if (sfd.ShowDialog() == System.Windows.Forms.DialogResult.OK)
                    {
                        string savePath = sfd.FileName;
                        using (FileStream fs = new FileStream(savePath, FileMode.Create))
                        {
                            fs.Write(bytes, 1, len - 1);
                            ShowMsg("文件保存完毕" + savePath);
                        }
                    }
                    MessageBox.Show("dd");
                    
                }
            }
        }
当程序运行到这段代码 if (sfd.ShowDialog() == System.Windows.Forms.DialogResult.OK)
的时候应该弹出一个保存文件的窗口,可它弹出了主程序窗口,而且我为了验证这段代码后面的程序是否被运行到,所在后面加了一段 MessageBox.Show("dd");
结果也没有运行到,为啥这样呢

评分

参与人数 1技术分 +1 收起 理由
宋天琪 + 1

查看全部评分

5 个回复

倒序浏览
本帖最后由 柏云杉 于 2012-3-21 15:29 编辑

你的代码在我机子上能够运行,你所说的主程序窗口是什么?能否截个图。
后面代码没执行是不是你没有点确定?






你能弹出窗体说明上面的代码没问题给省去了。

评分

参与人数 1技术分 +2 收起 理由
宋天琪 + 2

查看全部评分

回复 使用道具 举报
我运行的时候没有弹出这个啊D:\桌面\152801k42mj1gej8d41hgr.jpg,我刚才看到服务端的bin文件夹里面有Debug和Release两个文件夹,而且里面都有应用程序,而客户端的bin文件也有Debug和Release两个文件夹,只是Debug里面是空的
回复 使用道具 举报
奇怪了,图片发不出去
回复 使用道具 举报
你下个断点,看一看bytes[0]  这个数组的值.

评分

参与人数 1技术分 +1 收起 理由
宋天琪 + 1

查看全部评分

回复 使用道具 举报
方辉 发表于 2012-3-22 01:26
你下个断点,看一看bytes[0]  这个数组的值.

这里的值是没有问题的,当点击那个发送消息的按钮的时候,传过来值是0,那里是可以通过的
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马