- 论坛徽章:
- 0
|
7可用积分
各位好, 我对网络编程没有太多经验. 想请教一下大家是怎么做的.
比如说在传送数据的时候, 有几种方式:
1.在每次传送数据之前将此次数据的长度先发送过去, 然后再进行传送, 而接收方则while (read() > 0)一起接收, 然后计算接收到的数据在大小.如果说接收到的数据等于了开始接收到的长度那么多.然后就break出这个循环.
2.使用一个结构体.
- struct sa
- {
- int count;
- char buf[100];
- };
复制代码
每次先接收四个字节的数据即count的值,其表示此次将接收多少个数据. 然后根据count的值来read()相应长度的数据. 其实这种方式与第一种差不多的. 只是说每次接收的数量少一些, 好控制一些.
其实主要是在网络编程中感觉网络因素太多了. read()的所接收到的包的大小又不一定等于其第三个参数所指定的那么多数量. 因为存在MTU, 一次write()的数据也可能会分成多个包发送.
由于在网络编程方面没有什么经验, 所以希望各位高手能指点一下. 或者说一说您平时都是怎样来进行传输的?
在此谢过!
[ 本帖最后由 cunettenuc 于 2007-7-29 12:53 编辑 ] |
|