Widows Socket编程笔记---非本机无法正常通信

由于之前要模拟XX通信,于是打算试试Socket,虽然在Java早早已玩过这个东西并且当时是毫无问题,不过用C++来弄之后就开始发现各种问题。

1、“数据丢失”。最早不知道是什么原因,因为没有做消息错误的处理,认为是消息丢失了,反馈的数量和发送过去的是不对等的,导致出错。后来得知在发送的时候有可能会把多条消息合并成一条发送出去,刚开始我是没想到会有这样的情况,直到某人在群里问到之后才知道原来是这样,然后另一个某人说要处理这个就把每个包加上长度,因为感觉这样太麻烦而且又是模拟所以干脆改成同一长度,于是“数据丢失”问题解决。

2、非本地的发送。虽然说Socket最大的作用就是这个了,但是这里因为是模拟所以是不需要的,但是还是试了一下,结果惨不忍睹,只有初始化消息能正确发送,之后的消息全部乱七八糟。这让我无比蛋疼,因为在玩Java的时候只要本地测试正确,放到网络上都是没问题的,为什么C++的就不是这样,虽然不知道java对Socket进行了什么封装,但是就本机和非本机怎么会差别这么多。于是某人说要抓包看看,于是抓包发现一个问题:在没有任何操作的情况下(不会发消息)数据量也一直在涨。在我看来就算我知道这个结果我也不知道该怎么处理。而且最早的时候我测试过一次是正常的,不过当时还没那么多消息。总之目前是没有搞定,也没有搞定的必要,以后再碰到再解决,或者那个高人直接指点一下。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值