首 页 网络编程
网页制作 图形图象 操作系统 冲浪宝典
软件教学 认证考试

网络安全 网络办公 行业资讯 评测对比
您当前位置:站长天空 -> 冲浪宝典-> 上传下载
用Sockets接收和转换数字和字符串数据-.NET教程,数据库应用
作者:网友供稿 点击:34
推荐
西部数码-全国虚拟主机10强!20余项虚拟主机管理功能,全国领先!第6代双线路虚拟主机,南北访问畅通无阻!可在线rar解压,自动数据恢复设置虚拟目录等.免费赠送访问统计,企业邮局.Cn域名注册10元/年,自助建站480元起,免费试用7天,满意再付款!P4主机租用799元/月.月付免压金
站内搜索
文章页数:[1] 
多时候远程系统在执行并发任务的时候,会把它接收到数据的长度以数字的形式发送出去。但用socket发送和接收数字型数据的时候,要考虑到一个问题:要根据网络另一端机器的类型转换数据。尤其需要知道怎样把要发送的数据格式(网络格式)从本地机器的格式(主机格式)转换成为行业标准格式。

使用ipaddress.networktohostorder可以把数据从网络规则转换为主机格式,下面的receiveheader函数说明了它的用法,receiveheader函数实现过程如下:

1 用socket.receive从远程机器接收数据。
2 验证接收到的字节数是4。
3 socket.receive返回一个字节型数组,bitconvert.toint32把它转换成数字型数值。
4 最后,ipaddress.networktohostorder把长数值转换为主机格式。

public int receiveheader(socket socket)
{
int datasize = -1; // error
byte [] buffer = new byte[4];
int bytesread = socket.receive(buffer, 4,
system.net.sockets.socketflags.none);
if (4 == bytesread)
{
datasize = bitconverter.toint32(buffer, 0);
datasize = ipaddress.networktohostorder(datasize);
}
else // error condition

return datasize;
}

下面再来看一下怎样用多线程读取的方法为每个字符串都建立连接,从远程机器接收字符串型数据。在这种情况下,要把字节型数据转换成string型对象。你可以根据需要用asciiencoding或unicodeencoding类进行转换。receivedetail函数按以下步骤实现(此函数必须在receiveheader后调用,因为datasize的值是从receiveheader中得到的。)

1 在while循环中调用socket.receive,直到无返回值为止。数据被读入一个字节型数组。
2 建立一个asciiencoding对象。
3 调用asciiencoding.getstring把字节型数组转换成string对象,然后把它和先前读入的数据连接。

public string receivedetail(socket socket, byte[] buffer,
int datasize)
{
string response = "";

int bytesreceived = 0;
int totalbytesreceived = 0;
while (0 < (bytesreceived =
socket.receive(buffer, (datasize - totalbytesreceived),
socketflags.none)))
{
totalbytesreceived += bytesreceived;
asciiencoding encoding = new asciiencoding();
response += encoding.getstring(buffer, 0, bytesreceived);
}

return response;
}

文章整理:站长天空 网址:http://www.z6688.com/
以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!

文章页数:[1] 


放大字体显示 缩小字体显示 打印文章 推荐给朋友
热门文章
·JasperReport经验谈-JSP教程,Java技巧及代码
·使用C#编写一个计时器-.NET教程,C#语言
·(ADODB.Command)对象的用法,用CASE调用的REM/DEL/UPDATE/-ASP教程,ASP基础
·ASP.NET的include的用法-.NET教程,Asp.Net开发
·在ASP.NET中动态修改文件下载-.NET教程,Asp.Net开发
·感受新版poco的魅力 poco2005使用心得
·p2p音乐软件的佼佼者—酷狗kugoo
·移动通信电源设备的运行和维护
·PS拼图效果滤镜Puzzle Pro-网页设计,Photoshop
·Java 调用存储过程-JSP教程,Java技巧及代码
最新文章
·bt狂必看 bitcomet使用技巧六则_上传下载教程
·根据网页html结构选择最合适的xhtml标签_html教程
·如何把迅雷设置为默认的下载工具_上传下载教程
·如何设置显示、隐藏迅雷下载的悬浮窗_上传下载教程
·迅雷被设为默认下载工具 如何取消?_上传下载教程
·.net3.5和vs2008中的asp.net ajax_asp.net技巧
·避免迅雷桌面新闻打扰_上传下载教程
·迅雷中如何导入未完成的任务继续下载_上传下载教程
·作恶的最高境界—运营商强插广告_网赚技巧
·超站大赛32强王景琳:业内没有竞争对手_站长访谈
相关主题
  • 用socket发送电子邮件_邮件服务器
  • 用socket发送电子邮件(续)_邮件服务器
  • 用Socket类构建网页下载器-.NET教程,评论及其它
  • 用socket实现简单的文件传输-.NET教程,评论及其它
  • 用Socket发送电子邮件(利用需要验证的SMTP服务器)-PHP教程,邮件处理
  • 西部数码虚拟主机

    友情链接
    CNNIC 西部数码
    万网 自助建站
    虚拟主机 asp空间
    域名注册 域名
    域名申请 主页空间
    论坛空间 网站空间
    国际域名 虚拟空间
    空间租用 DDOS防火墙
    成都主机托管 四川主机托管
    主机租用 服务器租用
    网站目录 自助建站
    虚拟主机 网址大全
    软件下载
    自助链接
    虚拟主机资讯 特价虚拟主机
    版权申明:本站文章均来自网络,如有侵权,请联系我们,我们收到后立即删除,谢谢!
    关于我们:站长天空:专业提供最新的站长资讯、在线教程、虚拟主机权威评测、虚拟主机性能对比、网站制作教程,开发教程,站长工具。包括网页制作教程、冲浪宝典、编程参考、操作系统、软件教学、行业动态等。
    特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有。
    发表评论 打印  刷新     关闭