socket编程 c语言

客户端:for(i=0;i<h*3;i++){recv(sock,t,w,0);recvbuff+=w;recvbuff=(unsignedchar*)t;}服务器端:f... 客户端:
for (i = 0; i < h*3; i++)
{
recv(sock,t,w,0);
recvbuff += w;
recvbuff = (unsigned char*)t;
}
服务器端:
for(i = 0;i < h*3;i++){
temp =temp + w;
justCpy((unsigned char*)ap,(unsigned char*)temp,w);
printf("%d ",i);
if(SOCKET_ERROR==send(m_socket,(char*)ap,w,0))
printf(" %d %d ",GetLastError(),i);
printf("%d ",i);
}
temp和recvbuff都是一个h*w*3长度的指针(实际为unsigned char 的图像指针,)我将图像分h*3(三个通道)次传送,每次传一个宽度的字符,ap和t是一个w长度的指针用来存储每次传送的字符,justCpy是我自己写的函数 实现将后者指针的w长度的内容拷贝到前面的指针,都但是send函数停在55次左右也不是不响应 就是光标在闪,求大神
感觉就是send端被暂停了,而且当我把接收端关闭之后,send端会显示所有的i(不知道是不是传送过去了)
展开
 我来答
kwydwuf
2014-03-25 · TA获得超过7411个赞
知道大有可为答主
回答量:1527
采纳率:71%
帮助的人:2028万
展开全部
sender 没有看到 i 打印,是由于你没有加换行,由于标准输出是行缓冲,所以不会马上打印,而是要等遇到 \n 或者进程结束才会打印。你可以写成 printf("%d\n"); 就能看到发送方的打印。

接收方也可以加上printf来打印。

这么简单的程序,用gdb自己调试也可以。
zhangqingxian
2014-03-25 · TA获得超过268个赞
知道小有建树答主
回答量:362
采纳率:0%
帮助的人:309万
展开全部
你在接收端打印一些信息就知道有没收到了
如果你用的是TCP连接,传输的可靠性是有保证的,接收端如果不及时地接收数据,发送端就会阻塞
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式