关于基于socket的c语言图片传输
基于UDP或者TCP的文件传输,我的想法是通过图像类把图像的指针读进来,然后通过三次传输,第一次第二次传输长宽,然后在服务器端创建相应的unsignedchar指针,然后...
基于UDP或者TCP的文件传输,我的想法是通过图像类把图像的指针读进来,然后通过三次传输,第一次第二次传输长宽,然后在服务器端创建相应的unsigned char指针,然后第三次再传送客户端这边的图像指针,刚刚编程使用了UDP编程,可是失败了,sendto报错10040貌似是文件buff过大,一张图片有1M多,请大神帮我分析我这种方法可以实现图片在服务器客户端上的传输么,还是socket这些只能传输文字?
展开
3个回答
展开全部
用tcp
首先传输 文件大小len;
然后直接传输文件,
服务端发送
int sended =0
while(sended < len)
{
sended += send(SOCKET s, buf + sended,~,~);
}
客户端接受
int recived = 0
while(recived < len)
{
recived + = recv(SOCKET s,buf+ recived,~,~);
}
首先传输 文件大小len;
然后直接传输文件,
服务端发送
int sended =0
while(sended < len)
{
sended += send(SOCKET s, buf + sended,~,~);
}
客户端接受
int recived = 0
while(recived < len)
{
recived + = recv(SOCKET s,buf+ recived,~,~);
}
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
喂喂,UDP 和 TCP 的每个数据包是有数据大小限制的,你干嘛不分段传输,一次性传输可能会因为数据过多而导致失败,而且 UDP 不排序,不保证能接受到完整的图像数据,为啥不用 TCP ?
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
所有的数据都是平等的,在编程方面不存在只能操作什么的情况,1M直接建立是多了点,得想办法分开来,最多一个包1K
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询