执行到这句的时候会循环发送空消息
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[]内容