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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

在黑马学习视频中,老师演示如何将服务端的数据发送到客户端。老师先是建立了一个2M的字节空间,然后在客户端用Recevice的方法接受。再然后对其进行转码将字节转换成字符串,并用Append的方法在字符串后面加了一个换行符,结果程序运行没有换行。老师解释说是因为,在转码中,将字节后面的空内容也进行了转码变成了“/0”。但我还是不懂为什么,这样就不换行了,这个“”/0与没换行又有什么联系。下面是老师的客户端代码:


{
        byte[] arrMsgRec = new byte[1024*1024*2];//建立一个2M的字节数组
        socketClient.Recevice(arrMsgRec);
        string strMsgRec = System.Text.UTF8.GetString(arrMsgRec);
        ShowMsg(strMsgRec);
}


void ShowMsg(string msg)
{
        txtMsg.AppendText(msg+"/r/n");
}

其中只列出了相关代码,全部代码视频上有,我就不打了。望各位高人指点迷经!!!

2 个回复

正序浏览
许庭洲 发表于 2012-8-22 13:28
对其进行转码时候, 将空格转换成加号('+')试试看,这是老外惯用办法。
string strMsgRec = System.Text.UTF ...

是一定要转码才能实现通信功能么,如果不进行转码能不能实现客户端与服务器直接的通信?如果不能,原因是因为流传输必须以字节的方式进行的么
回复 使用道具 举报
对其进行转码时候, 将空格转换成加号('+')试试看,这是老外惯用办法。
string strMsgRec = System.Text.UTF8.GetString(arrMsgRec);
strMsgRec = strMsgRec .Replace("+", "%20");
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马