请教高手Linux网络程序设计中的一个问题,请指点!!!
是这样的,我现在希望通过TCP或者UDP协议把前端的数据图象通过Socket传送到PC服务器,
但数据传输需要保证一幅图像的连续性(一幅图像大小为 320*240*2 Bytes)大于了1k,如果通过
send或sendto系统调用,一次不能够传完,但如果分成多次来传,有害怕一帧图像不完整。这个
请高手指点如何来处理这个问题,谢谢!!!
问题点数:0、回复次数:3Top
1 楼dolpso(dolpso)回复于 2005-06-02 11:50:10 得分 0
发送时:分片,给每个片一个序列号
接受时:根据序列号,组包。Top
2 楼Philip_Chen(Philipchen)回复于 2005-06-02 12:10:50 得分 0
但是这些工作要自己来做,可能比较麻烦,我的发送端程序是这样的。
bzero(&address,sizeof(address));//填写sockaddr_in结构
address.sin_family=AF_INET;
address.sin_addr.s_addr=inet_addr("192.168.0.100");
address.sin_port=htons(port);
socket_descriptor = socket(AF_INET,SOCK_DGRAM,0);
bzero(netbuf, 256);//netbuf用来保存150k的一帧图象
memset(netbuf, '0', 0x25800);
read(fb_ani, (char *)netbuf, 0x25800); //从前端读数据到netbuf
sendto (socket_descriptor, netbuf, sizeof(netbuf), 0, (struct sockaddr *) &address, sizeof(address));
以上程序sendto后返回的是-1,所以netbuf太大了,如果要分开发,这个比较困难,请指点!Top
3 楼mostideal(三甲)回复于 2005-06-02 23:47:02 得分 0
markTop




