请教socket传文件服务端死掉的可能原因

dodo_check 2009-04-29 09:45:31
tcp异步socket 传输文件,用自己封装的应用层的数据包格式发送,
客户端发送五包(每包数据为1K字节),服务器端回复一包 ,
这种发送,在局域网内 每秒有3到4M的样子, 正常传输的情况下没有问题
如果反复多次 在传输中关掉客户端(可以续传)再启动客户端传,则在最后一次服务器会死掉(界面变白,传输停止),而之前的中断没有影响。
可以检测到服务器会死掉前写入了五包数据,但是没有发出回复包。

请教一下,可能造成的原因?
谢谢了
...全文
136 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
xiezhenghai 2009-05-03
  • 打赏
  • 举报
回复
肯定是阻塞没控制好, 不关内存的事 , 100%代码有问题
gwinner 2009-05-03
  • 打赏
  • 举报
回复
八成你的代码有问题,帖出来看看
dodo_check 2009-05-03
  • 打赏
  • 举报
回复
谢谢了,
在运行过程中,占用内存空间确实一直在上升,但速度不是很快,
所有的new,都有delete,
不知道 为什么占用内存空间还一直在上升?
xghuzd 2009-04-30
  • 打赏
  • 举报
回复
如果反复多次 在传输中关掉客户端(可以续传)再启动客户端传,则在最后一次服务器会死掉(界面变白,传输停止),而之前的中断没有影响。

//死掉一定是最后一次的,
不是很明白你说的,
能具体点吗,
Wenxy1 2009-04-30
  • 打赏
  • 举报
回复
你的服务器端代码有bug.
重点检查资源是不是泄露了!
blackcat242 2009-04-30
  • 打赏
  • 举报
回复
代码贴出来看看,单看描述看不出来
king_query 2009-04-30
  • 打赏
  • 举报
回复
客户端关了以后我觉的你是不是还要对服务端接收数据进行处理一下,因为你的SOCKET关了以后,可能缓冲中还有数据没有读取.你应该将数据读完.
wutaihua 2009-04-30
  • 打赏
  • 举报
回复
局域网的调试环境要优先于公网环境,在局域网内没有出现问题,是没有被触发bug而已。你看看你的内存处理和资源释放。
qhluo02 2009-04-29
  • 打赏
  • 举报
回复
可能是你的资源控制好,如资源没有回收或回收错误、数据缓冲出问题;程序代码中越界访问内存,如memset之类的调用;死占资源...
建议,一般用tcp协议传输文件是比较安全,像你所说的问题,我怀疑是你代码有问题,更网络的关系不大。

18,356

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 网络编程
c++c语言开发语言 技术论坛(原bbs)
社区管理员
  • 网络编程
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧