请教一下各位大哥 调用 myClientSocket.Send会循环发送空消息

时间:2022-12-15 16:47:34
 myClientSocket.Send(Encoding.Default.GetBytes(网站分组和网站列表)); 
 执行到这句的时候会循环发送空消息

public void  网站列表(object localsocket)
        {
            Socket myClientSocket = (Socket)localsocket;
            //协议名称:返回网站列表查询结果
            //协议本体:string@[weblist][分组名]&&网站1&&&&网站2&&[end]
            //参数解释:^%^是分组与网站的分割符   ^**^是网站与网站的分隔符  ^%end%^结束本组开始下一组
            //协议版本:Bate 0.0.1
            //备注:本协议返回一个String字符串,客户端接收后自行分割。
            int 分组=0;
            int 域名=0;
            
            string SQL查询分组 = "select [分组名] from [网站列表_分组] where [状态]='1'";
            SqlDataReader sdr分组 = SqlHelper.ExecuteReader(ICon.Cnn, CommandType.Text, SQL查询分组);
            string 网站分组和网站列表 = "[weblist]";
            while (sdr分组.Read())
            {
                //返回网站分组
                网站分组和网站列表 = "[weblist]" + "" + "[" + sdr分组[0].ToString() + "]";
                myClientSocket.Send(Encoding.Default.GetBytes(网站分组和网站列表)); 
                分组++;
                //返回域名列表
                string SQL查询网站列表 = "select * from [网站列表] where [分组]='" + sdr分组[0].ToString() + "'";
                SqlDataReader sdr网站列表 = SqlHelper.ExecuteReader(ICon.Cnn, CommandType.Text, SQL查询网站列表);
                while (sdr网站列表.Read())
                {
                    域名++;
                    网站分组和网站列表 = "[weblist]" + "^" + "[" + sdr分组[0].ToString() + "]" + "^" +sdr网站列表[1].ToString();
                    myClientSocket.Send(Encoding.Default.GetBytes(网站分组和网站列表));
                }
                //网站分组和网站列表 = 网站分组和网站列表 + "[end]";
            }
           // return "共返返回了" + 域名.ToString() + "域名," + 分组.ToString()+ "分组";
        }

2 个解决方案

#1


中文编程!第一次见到,呵呵。。。

#2


楼主测试的时候,设个断点,看看Encoding.Default.GetBytes(网站分组和网站列表)这句编码出来得到的byte[]内容

#1


中文编程!第一次见到,呵呵。。。

#2


楼主测试的时候,设个断点,看看Encoding.Default.GetBytes(网站分组和网站列表)这句编码出来得到的byte[]内容