易截截图软件、单文件、免安装、纯绿色、仅160KB

C/C++ 中的关于recv send函数 - C/C++ / C语言

我们公司用TCP 发送数据时,包括简单消息,都用循环加这两个函数,这样的话,当消息很少时,就必须得双方先指定好消息的长度。也就是说得多发送一次数据。否则双方就死锁。全都在等待数据。
请问一下,这是正常的解决方式么?
如果用循环,那么每次发送多少数据合适呢?
1. 确实情况下,recv和send都是阻塞的,也就是说如果没有数据会一直等下去。
2. winsock没有做任何的传输可靠的保障,所以需要自己确保,可以将数据打包成一个结构体,前面添加一些控制头信息,先接收或发送这部分东西。
3. 一般来说,不建议send和recv写在同一个线程里,这样相互等待很不好。

收发一般使用不同的线程。或者使用select就可以放在同一个线程了。
如果使用的是tcp,一般要有自己定义的规则去分隔数据量的片段。否则接收方无法知道何时接收一个完整的包。
至于如何分隔数据流,而已附加一个长度,或者起始结束符。


相关问答:

VFP如何调用C函数 - 其他数据库开发 / VFP

请问VFP中如何调用C/C++函数?

你要调用什么功能的函数?要看看VFP中有没有对应的函数,如果有就省着再调用了。如果没有,可以将C/C++函数写个DLL或FLL,然后在VFP调用即可。

十豆三 老师,怎么才能修改自己的 ......

c静态编译另一个文件夹的库函数 - C/C++ / C语言

在根目录/lib中存放一个log.c,log.h,并用下面的语句:
gcc -c log.c
ar crv liblog.a log.o
编译出一个liblog.a静态库,然后在文件夹:/testfile中创建一个test.c和testc.c,test.c中引用了testc.c中定义的方法 ......

磕求C/S源码 - Delphi / 数据库相关

现有paradox数据库使用BDE驱动,拟改为C/S版,增加网络读取数据功能。请哪位大侠,提供源码。
说句不客气的话,用paradox做C/S是自寻死路。
换一个网络数据库

因为不想动大手术,仅能共享几个文件即可。

Da ......
© 2009 ej38.com All Rights Reserved. 关于E健网联系我们 | 站点地图 | 赣ICP备09004571号