[问题] 想请问一个socket的问题~

楼主: anti5566 (^^)   2015-01-20 14:40:41
开发平台(Platform): (Ex: VC++, GCC, Linux, ...)
c++
问题(Question):
新手最近接触socket,
一直有个疑问,
在没有关闭descriptor的情况下,
要如何分离连续写入多笔资料,
假如有
server A,
client B
A对B写入三笔资料
current_event.data.fd是 client fd,
write(current_event.data.fd, buffer1, size1);
write(current_event.data.fd, buffer2, size2);
write(current_event.data.fd, buffer3, size3);
而B 接收时要能得知我这是3笔资料,
而不是一笔,
感觉应该是要在之间插入EOF之类的分隔,
不过试了好久都没有头绪,
请知道的大大可以告诉我,
谢谢
作者: azureblaze (AzureBlaze)   2015-01-20 14:52:00
先送这笔资料的大小过去
作者: Jockey66666 (往事已成追忆)   2015-01-20 16:10:00
定义一个data header里面包含data length放在data前送过去
作者: tj386 (最爱欧阳三姊妹♥♥♥)   2015-01-20 16:56:00
先传3过去
楼主: anti5566 (^^)   2015-01-20 23:39:00
谢谢您们~我要问的问题感觉跟15667差不多~谢谢^^
作者: Killercat (杀人猫™)   2015-01-22 07:04:00
可以参考一下UDP的结构 甚至可以直接用UDP也成UDP结构就是固定8byte 里面有来源 目标 长度 检查马在socket里面没有真正的eof 因为binary可能是任何一个ascii code,而256个ascii code里面并没有定义eof

Links booklink

Contact Us: admin [ a t ] ucptt.com