linux向windows服务器发送大数据包,发送成功,接受乱码

jadyzdr 2012-05-17 09:44:58
                int ret = 0;
int currentsize = send(s, pBuf, nBufLen, 0);
ret = currentsize;
while(currentsize < nBufLen && ret > 0)
{
ret = send(s, pBuf+currentsize, nBufLen-currentsize, 0);
if(ret<=0)
{
perror("SendFile");
delete [] pDest;
delete[]pBuf;
return -1;
}
currentsize += ret;
}
delete [] pDest;
delete [] pBuf;
return currentsize-12;

服务端是windows xp
客户端是linux,建立二者之间的通信,当数据包小于8K的时候,接受正常,当数据包大于8K的时候,发送成功了,但是接收到的数据不对,服务器用的是gh0st的完成端口,不知道什么原因,上面代码是向服务器发送数据的代码
服务器类库:
http://www.pudn.com/downloads375/sourcecode/windows/detail1618326.html
...全文
206 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
titer1 2012-08-26
  • 打赏
  • 举报
回复
看看 windows端的buffer大小哈?还有在windows端抓下包哈。
morris88 2012-08-25
  • 打赏
  • 举报
回复
int ret;
int currentsize = 0;
while (currentsize < nBufLen) {
ret = send(s, pBuf + currentsize, nBufLen - currentsize, 0);
if (ret < 0) {
perror("SendFile");
delete [] pDest;
delete[]pBuf;
return -1;
}
currentsize += ret;
}
delete [] pDest;
delete [] pBuf;
return currentsize - 12;
jadyzdr 2012-08-25
  • 打赏
  • 举报
回复
是哪个完成端口类库有问题,还是用gh0st源码提取出来的就没问题了
daviddb7 2012-05-17
  • 打赏
  • 举报
回复
用抓包工具抓网络数据,看是发送错了还是接收错了
qq120848369 2012-05-17
  • 打赏
  • 举报
回复
很明显是写的代码有问题,慢慢查吧.
xrkmonitor字符云监控系统是一个国产开源监控系统,专注于通过监控系统对软硬件系统进行掌控以及系统相关数据的可视化,通过插件化进制完成对通用项目监控的复用,支持多种开发语言开发接口以便能为各类语言开发者所用,支持在线部署。 xrkmonitor字符云监控系统特色: 1、IP地址库: 支持通过IP地址上报时将IP地址转为物理地址,相同物理地址归并展示一个监控API 即可轻松生成监控数据的物理地址分布图,插件示例:monitor_apache_log 2、监控插件市场: 让监控成为可以复用的组件,更多监控插件持续开发中 3、分布式日志系统: 支持大规模系统日志上报,日志上报支持频率限制、日志染色、自定义字段等高级功能,控制台日志查看支持按关键字、排除关键字、上报时间、上报机器等方式过滤日志,从茫茫日志中轻松找到您需要的日志。 4、视图机制: 监控图表支持视图定制模式,视图可按上报服务器、监控点随意组合,轻松定制您需要的监控视图,并可在监控图表上直接设置告警值。 5、告警集成: 集成告警功能, 支持邮件、短信、微信、PC客户端等告警方式,告警功能无需开发直接可用 xrkmonitor字符云监控系统优势: 支持插件功能, 监控插件无需开发,自由选择监控插件,安装即可使用 集成告警功能, 支持多种告警方式 集成分布式日志系统功能 支持多种部署方式 a.集中部署(全部服务部署在一台机器,适合个人或者小团队开发者) b.分布式部署(分布式部署在多台机器,适合小中型企业大规模监控需求) 支持自动化配置(机器部署agent后自动注册到监控系统无需在控制台配置、视图根据上报自动绑定相关上报机器) 支持多用户访问(子账号由管理员账号在控制台添加) 上报接口支持主流开发语言,数据上报api 提供类似公共库接口的便捷 在线部署 安装脚本: install.sh 从以下链接下载后, 按提示执行即可, 需要系统支持 bash 在线部署说明: 安装脚本会先检查当前系统是否支持在线安装, 如不支持您可以下载源码后在系统上编译安装 在线部署目前只支持集中部署方式, 即所有服务部署在一台机器上, 该机器上需要安装 mysql/apache 安装脚本使用中文 utf8 编码, 安装过程请将您的终端设置为 utf8, 以免出现乱码 安装脚本同时支持 root 账号和普通账号操作, 使用普通账号执行安装部署要求如下: 在线部署使用动态链接库, 需要在指定目录下执行安装脚本, 目录为: /home/mtreport 普通账号某些目录可能无权操作, 需要授权才能正常安装 卸载脚本: uninstall_xrkmonitor.sh 在线部署过程中会下载该脚本, 如需卸载可执行该脚本 我们强烈建议您先在本地虚拟机上执行在线安装, 熟悉安装流程后在实际部署到您的服务器上。 一分钟完成在线部署操作示意:(所选系统为:opensuse 42.3) 使用的技术方案 1、apache + mysql(监控点数据、配置信息使用 mysql 存储, 支持分布式部署) 2、前端 web 控制台采用 dwz 开源框架 3、前端监控图表采用开源 echarts 绘制 4、后台 cgi 使用开源的cgi模板引擎 - clearsilver, 所有cgi支持以fastcgi方式部署 5、后台服务使用了开源的 socket 开发框架 - C++ Sockets     xrkmonitor字符云监控系统 更新日志: v3.5 阿里云的日志服务器收不到本机 agent 数据问题规避 mysql 自动连接失败问题fix mysql db 编码统一使用 latin1编码(实际是utf编码) agent日志配置同步偶尔失败问题 fix 插件支持开发者模式,并开放 linux shell 语言插件开发功能

23,127

社区成员

发帖
与我相关
我的任务
社区描述
Linux/Unix社区 应用程序开发区
社区管理员
  • 应用程序开发区社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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