请稍等 ...
×

采纳答案成功!

向帮助你的同学说点啥吧!感谢那些助人为乐的人

服务端接收不到客户端发过来的报文

吴哥,我遇到一个问题,就是服务端的上传文件主函数里,接收不到客户端的报文,if(TcpServer.Read(strrecvbuffer,starg.timetvl+10)==false) 老是失败,我看了您的CTcpServer类关于Read函数,说错误的原因可能是等待超时或者socket连接不可用,但是我不太清楚到底是哪个原因,或者说是别的错误导致的,调试半天一直没搞清楚,求教,感谢!
注:我这个是华为云服务器,服务端代码和客户端代码都放在/project/tools1/c/目录下面。

图片描述

图片描述

图片描述

图片描述

图片描述

图片描述

正在回答 回答被采纳积分+3

2回答

长歌_吴从周 2022-07-30 23:53:41

你可以先写一个简单的服务端和客户端程序,不要一上来就搞太复杂的,调试起来很麻烦的。

先让程序简单化。

0 回复 有任何疑惑可以回复我~
长歌_吴从周 2022-07-29 14:08:21

你用我的代码试试。

0 回复 有任何疑惑可以回复我~
  • 提问者 达令升 #1
    我用了吴哥您的/project/tools/c/fileserver1.cpp,里面代码什么都没有动,但是运行就显示logfile.open failed.日志打开失败了,刚开始就失败了/(ㄒoㄒ)/~~。我开始以为我的5005端口没开或者防火墙服务没开,但是检查都是开的。接着用gdb调试,用p打印了log file,显示如下:
    {m_tracefp = 0x0, m_filename = '\000' <repeats 300 times>,  m_openmode = "\000\000\000\000\000\000\000\000\000\000", m_bEnBuffer = false, m_bBackup = true, m_MaxLogSize = 100}
    后面看了吴哥您的_public.cpp源代码,不太懂这个日志文件指针,日志文件名,还有日志文件的打开方式,都是空的。还望求解,辛苦吴哥了!
    注:我用了另一个云服务器和虚拟机,测试了2遍,都用了吴哥您的/project/tools/c/fileserver1.cpp,运行都提示logfile.open failed.另外运行tcpputfiles1.cpp,结果也是提示logfile.open failed.
    回复 有任何疑惑可以回复我~ 2022-07-29 17:16:03
  • 提问者 达令升 #2
    后面我用第一个云服务器测试,又好了,用了吴哥您的代码,后面我又测试了一遍自己的代码,跟吴哥您的代码对比了一下,实在是没找到不同点,也有可能我眼神不好了,我查看服务端的日志,可能是因为等待20秒的延迟导致超时所以失败,但是我查不到为什么会莫名其妙延迟20秒。后来我把服务端和客户端的代码只要有关于20字眼的代码全都改了,可运行结果还是那样,算了,老老实实拷贝吴哥代码继续学下去吧😭
    回复 有任何疑惑可以回复我~ 2022-07-29 23:14:39
问题已解决,确定采纳
还有疑问,暂不采纳
意见反馈 帮助中心 APP下载
官方微信