社区
网络编程
帖子详情
奇怪的问题,高手请进!!!
liu_jc
2004-12-13 07:10:49
我用winsocket写了一段程序,代码大致如下:
while(rt)
{
rval=send(ss,buf,length,0);
......
rval=recv(ss,buf,256,0);
......
rt--;
}
在执行debug跟踪时可以循环执行,但是单独执行时只循环了一次救出现错误。socket设置了超时,阻塞模式。
...全文
115
14
打赏
收藏
奇怪的问题,高手请进!!!
我用winsocket写了一段程序,代码大致如下: while(rt) { rval=send(ss,buf,length,0); ...... rval=recv(ss,buf,256,0); ...... rt--; } 在执行debug跟踪时可以循环执行,但是单独执行时只循环了一次救出现错误。socket设置了超时,阻塞模式。
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
14 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
hohai
2004-12-14
打赏
举报
回复
是不是buff在另一个线程中也用,你加了同步机制,另一个线程占用时间过长,查查同步问题
hyamw
2004-12-14
打赏
举报
回复
你可以看看按下F5以后,用TRACE输出一下错误信息,能不能发现错误。如果不行,就写日志文件吧。还有一个问题,你那个send()和recv()函数中socket s是全局变量?也就是说只有一个?而用的多线程对一个socket访问吗?
hyamw
2004-12-14
打赏
举报
回复
debug下面的容错能力强,很多错误不会报告的。
出现的错误是什么?
liu_jc
2004-12-14
打赏
举报
回复
在debug下可以接收
HunterForPig
2004-12-14
打赏
举报
回复
buff够大吗,有256?
要清空buff
memset(buff,0,256);
oyljerry
2004-12-13
打赏
举报
回复
rval=recv(s,buff,256,0);
这里能接受下吗?
liu_jc
2004-12-13
打赏
举报
回复
有,在recv和send前都有这句话。
while(rt)
{
flag=SendCommand(command,no);
flag=ReceiveData();
rt--;
}
int SSHComm::SendCommand(char* cmdstr,CString no) // 发送命令
{
int flag=0;
int c=3;
while(c>0)
{
memset(buff,0,sizeof(buff));
flag=send(s,cmdstr,m_len,0); //m_len在别的方法中得到
if(flag==SOCKET_ERROR)
{
m_len=0;
c--;
}
else
break;
}
if(c==0 && flag==SOCKET_ERROR)
{
return 0;
}
return 1;
}
int SSHComm::ReceiveData() //接受数据
{
int flag=MSG_OOB;
int rval;
memset(buff,0,sizeof(buff));
rval=recv(s,buff,256,0);
if(rval==SOCKET_ERROR)
return 0;
m_len=rval;
return 1;
}
qq_13939330
2004-12-13
打赏
举报
回复
代码贴的不全,只能这样猜测!buf中的内容有没定时清掉??如
while( rt )
{
rval=send(ss,buf,length,0);
......
memset(buf, 0, 256); //-------------有这一句吗?
rval=recv(ss,buf,256,0);
printf("%d\n",WSAGetLastError());
Sleep(1000);
rt--;
}
liu_jc
2004-12-13
打赏
举报
回复
加上sleep没有任何的效果。这个程序是多线程的。
3m2u
2004-12-13
打赏
举报
回复
那就编译成release啊.运行的时候就可以看错误代码了啊
liu_jc
2004-12-13
打赏
举报
回复
你的意思是加上WSAGetLastError,不过没用啊,在bebug下不会出现错误的。接收的数据不会超过256的,可以肯定。加上sleep可以试试
3m2u
2004-12-13
打赏
举报
回复
while(rt)
{
rval=send(ss,buf,length,0);
......
rval=recv(ss,buf,256,0);//要接收的数据只有这么多么?如果超过256要循环的
printf("%d\n",WSAGetLastError());
Sleep(1000);
rt--;
}
liu_jc
2004-12-13
打赏
举报
回复
没有别的代码了,很简单的,就是这些。没有任何其它的代码了,就是简单的发送接收。debug可以正常运行。单独执行只能循环一次。
HunterForPig
2004-12-13
打赏
举报
回复
把代码贴上来
一个非常
奇怪
的
问题
,
高手
请进
!!(在线等。。。。。)
一个非常
奇怪
的
问题
,
高手
请进
!!(在线等。。。。。) VCL组件开发及应用http://www.delphi2007.net/DelphiVCL/html/delphi_20061222221346175.html 我想将一个含有特殊字符的文本文件在memo1中显示,一直未能...
题解 | #质检员的烦恼#写了一天,还是时间复杂度太高,真的心累。求
高手
改!!!
int c 阿里淘天社招一面1h 楼主本3.5,华为打拼三年半啥也不会,今年被通知不续签,在找社招机会 电话面,应该是凉了 字节跳动运营岗二面面经 二面没有自我介绍环节,直接奔进
问题
环节。1.哪段实习经历收获最大?2....
高手
在民间!明知广告却让人欲罢不能的营销手段
知识源于生活中的实践,很多真理也源于生活,在之前很多朋友总是询问我为何写不出好的文章,而笔者的回答则是没有更好总结生活的点点滴滴,正所谓
高手
在民间,好的推广营销思路往往被人们用于生活的实践中,下面一起...
记录一个PADS下遇到的
奇怪
的
问题
----ECO更新报错
1、
高手
请进
!使用POWERPCB时,遇到的怪情况!----http://www.baisi.net/thread-1355513-1-1.html 2、请教各位PADS
高手
帮忙感激不尽:在logic里更改原理图ECO到PCB时出错----...
盈通rx580游戏
高手
bios_RX 5700 XT D6 游戏
高手
测评:女装大佬重捶出击!
文 | 林德琛一直以来,说到显卡外观,大家首先会想到甚么?傻大黑粗?霸气侧露?肌肉跑车?但无论如何,都不会是:「好可爱!好清新!...先生们女士们,请让我向你们介绍,来自盈通的女装肥肉肌肉猛...
网络编程
18,356
社区成员
64,214
社区内容
发帖
与我相关
我的任务
网络编程
VC/MFC 网络编程
复制链接
扫一扫
分享
社区描述
VC/MFC 网络编程
c++
c语言
开发语言
技术论坛(原bbs)
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章