社区
网络编程
帖子详情
socket send发送数据问题
wojiushi3344
2012-07-15 04:35:37
最近在写socket编程,发现一个问题,在发送数据的时候。用什么方式来发送一个结构体比较安全。
我现在是用的最简单的方法强制转换,结果倒是正确的,我总觉得会有什么问题,但是没发现问题出现在什么地方,高手们能说说你们是怎样发送一个结构体到服务器的吗?
...全文
322
7
打赏
收藏
socket send发送数据问题
最近在写socket编程,发现一个问题,在发送数据的时候。用什么方式来发送一个结构体比较安全。 我现在是用的最简单的方法强制转换,结果倒是正确的,我总觉得会有什么问题,但是没发现问题出现在什么地方,高手们能说说你们是怎样发送一个结构体到服务器的吗?
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
7 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
这个娜戒海了
2012-07-16
打赏
举报
回复
貌似只能通过BYTE数组,强制转换来发送,等待高人共享经验
wojiushi3344
2012-07-16
打赏
举报
回复
[Quote=引用 4 楼 的回复:]
引用 2 楼 的回复:
引用 1 楼 的回复:
发送结构体,客户端和服务端的结构体定义必须一样。
只用过windows的通信,为了保证 结构体对齐,
我在客户端和服务端都用
#pragma pack(1)
#prgma pack()
其他编译器不知道
你说的这种情况,是不是通过强制转换类型来发送的。哥们,除了这种通过强制转换的方法发送结构体,还有没有其他不强制转换的……
[/Quote]
哥们你说的编码和解码,是不是就是讲结构体强制转换成char*。服务器接收到数据之后再强制转换回来。如果不是你的编码和解码的方法是怎么的,还有就是这样强制转换在什么地方会出现问题。。谢谢了。
zhanshen2891
2012-07-16
打赏
举报
回复
两方都使用相同的内存对其方式就可以了。
一般都是 #pragma pack(push, 1)
oyljerry
2012-07-16
打赏
举报
回复
[Quote=引用 2 楼 的回复:]
引用 1 楼 的回复:
发送结构体,客户端和服务端的结构体定义必须一样。
只用过windows的通信,为了保证 结构体对齐,
我在客户端和服务端都用
#pragma pack(1)
#prgma pack()
其他编译器不知道
你说的这种情况,是不是通过强制转换类型来发送的。哥们,除了这种通过强制转换的方法发送结构体,还有没有其他不强制转换的方法来发送结构体。。
[/Quote]
结构体不能直接发送,对于socket来说只有缓冲区数组来发送,编码和解码需要你自己两端做
relive007
2012-07-15
打赏
举报
回复
我认为不存在你说的那种问题,都是当缓冲区来看的。
wojiushi3344
2012-07-15
打赏
举报
回复
[Quote=引用 1 楼 的回复:]
发送结构体,客户端和服务端的结构体定义必须一样。
只用过windows的通信,为了保证 结构体对齐,
我在客户端和服务端都用
#pragma pack(1)
#prgma pack()
其他编译器不知道
[/Quote]
你说的这种情况,是不是通过强制转换类型来发送的。哥们,除了这种通过强制转换的方法发送结构体,还有没有其他不强制转换的方法来发送结构体。。
bsnry
2012-07-15
打赏
举报
回复
发送结构体,客户端和服务端的结构体定义必须一样。
只用过windows的通信,为了保证 结构体对齐,
我在客户端和服务端都用
#pragma pack(1)
#prgma pack()
其他编译器不知道
Socket
编程快速入门
本课程将理本课程将理啊 论结合实践,带你从零开始,系统学习
Socket
编程技术,让
Socket
的学习不再那么零散与难以掌握,同时会提炼出
Socket
网络传输的核心思想与构架,并带你踩坑出坑,增加你的分析与处理
问题
的啊aas...
socket
发送结构体数据
Socket
中的
send
函数可以发送字符串,但不能直接发送结构体,因此在发送端先把结构体转成字符串,然后用
send
发送,在接收端recv字符串,再转换成原先的结构体,这个就是解决
问题
的主要思路,实现中要注意的
问题
在下文阐述。 为了客户端之间能够互相通信,实现私聊,我采用服务器转发的方式,因此用户发送的每条消息中除了消息主体外,还必须包含有发送者、接收者ID等信息,如此采用结构体便是最佳的办法...
python
socket
发送TCP数据
python
socket
发送TCP数据生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants创建一个自定义列表如何创建一个注脚注释也是必不可少的KaTeX数学公式新的甘特图功能,丰富你的文章UML 图表FLowchart流程图导出与导入导出导入 用python写
socket
发送 TCP的数据 客户端: ```python # coding=utf-8 # 引入套接字 import
socket
def tcp
Send
(): # 创建套接字 tcp_
socket
=
C语言
socket
send
()数据缓存
问题
send
()函数默认情况下会使用Nagle算法,Nagle算法通过将未确认的数据存入缓冲区直到积攒到一定数量一起发送的方法,来减少主机发送零碎小数据包的数目。所以如果
send
()函数
发送数据
过快的话,该算法会将一些数据打包后统一发出去。如果不了接这种情况,接收端采会遇到看似很奇怪的
问题
,比如成功recv()的次数与成功
send
()的次数不相等,在这中情况下,接收端可以通过recv()的返回值是否为
socket
发送数据
与接收数据
代码】
socket
发送数据
与接收数据。
网络编程
18,356
社区成员
64,214
社区内容
发帖
与我相关
我的任务
网络编程
VC/MFC 网络编程
复制链接
扫一扫
分享
社区描述
VC/MFC 网络编程
c++
c语言
开发语言
技术论坛(原bbs)
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章