socket传输int型数字的问题
时间:2011-09-22
来源:互联网
unsigned short s = 110;
unsigned int 1 = 800;
当然110和800这两个数字是我随便举的, 我现在需要把s和l这两个数字写入一个socket中, 然后传递到网络的另一端,另外一段收到数据包后, 可以得到s=110, l=800。 该如何写啊?
只需要把关键的地方些出来就行了。
作者: linux_6 发布时间: 2011-09-22
memcpy进去,接收端memcpy出来
作者: jackyjkchen 发布时间: 2011-09-22
声明一个char [6]
memcpy进去,接收端memcpy出来
不会吧,不是还需要做什么网络字节转换什么的吗? 再说,在发送端申明一个char [6]然后把这两个数字拷贝进去到可以理解, 但是接收端,你怎么从char [6]里把它memcpy到unsigned short和unsigned int里啊?
作者: linux_6 发布时间: 2011-09-22
作者: linux_6 发布时间: 2011-09-22
都是小端的x86机器何必再去搞大端的网络字节序,直接memcpy就行了
真要变成网络字节序也可以啊,socket不就有htonl么
作者: jackyjkchen 发布时间: 2011-09-22
引用 1 楼 jackyjkchen 的回复:
声明一个char [6]
memcpy进去,接收端memcpy出来
不会吧,不是还需要做什么网络字节转换什么的吗? 再说,在发送端申明一个char [6]然后把这两个数字拷贝进去到可以理解, 但是接收端,你怎么从char [6]里把它memcpy到unsigned short和unsigned int里啊?
memcpy当然是双向的,源地址目标地址都是void*,随你写什么
作者: jackyjkchen 发布时间: 2011-09-22
2,将两个short类型的变量放到将要发送的buffer中,可以调用sprintf、memcpy之类的函数
3,发送出去
作者: thefirstz 发布时间: 2011-09-22
作者: zjf30366 发布时间: 2011-09-22
接收端recv之后,用ntohs,ntohl转一下就可以了.
作者: qq120848369 发布时间: 2011-09-22
热门阅读
-
office 2019专业增强版最新2021版激活秘钥/序列号/激活码推荐 附激活工具
阅读:74
-
如何安装mysql8.0
阅读:31
-
Word快速设置标题样式步骤详解
阅读:28
-
20+道必知必会的Vue面试题(附答案解析)
阅读:37
-
HTML如何制作表单
阅读:22
-
百词斩可以改天数吗?当然可以,4个步骤轻松修改天数!
阅读:31
-
ET文件格式和XLS格式文件之间如何转化?
阅读:24
-
react和vue的区别及优缺点是什么
阅读:121
-
支付宝人脸识别如何关闭?
阅读:21
-
腾讯微云怎么修改照片或视频备份路径?
阅读:28