游子的博客
慈母手中线,游子身上衣, 临行密密缝,意恐迟迟归, 谁言寸草心,报得三春晖。 数据读取中,请稍候......
posts - 337,  comments - 546,  trackbacks - 0

为了发一条命令,昨天从下午调试到晚上11点,也没有发送成功,都是微软的CSocket类的害的。还不如用基本的socket接口呢,哪怕错了也能找到原因。
今晚再回去调,弄好了,我就可以让监视软件发现异常时发短信到我手机上了。

-------------------------------------------------------------------------------------------------
晚上10:27,在家
又浪费了我两个多小时,做了各种尝试,终于发现了一个不可思议的秘密:
发送数据时,字符串末尾一定要加上\r\n,要不然,虽然send返回成功,但数据却没有发出去。
如:
Send("sms", 5)或Send("sms", 3),返回是5或3,但都没有数据出去。
只有Send("sms\r\n", 5),才能将数据发出。
这微软的bug真是太高深了。我对tcp/ip协议有一些了解,知道tcp会把数据先缓存,待一段时间后,或者长度达到1460字节后,才把数据一起发出。可是,我send后都已经调用close了,而且看到FIN都已经发出去了,数据都没有发出。这是什么鸟协议栈啊?也这算可靠的tcp连接?
唉,还是在机顶盒上玩自己的协议栈好玩啊,什么都看得一清二楚!

------------------------------------------------------------------------------------------------

凌晨0:14
哈哈,终于搞定了发短信功能。
原来也不完全是\r\n的问题,我后来再试,有\r\n也发不出去。然后我换了个端口,用21端口就可以了,原来是用110端口就不行。真是邪了门了,防火墙要阻挡的话,也是在syn命令的时候就阻挡了,也不会等到send数据的时候阻挡啊。
posted on 2008-09-16 16:19 游子 阅读(493) 评论(0)  编辑 收藏 引用 所属分类: 软件原创技术
只有注册用户登录后才能发表评论。

欢迎大家扔鸡蛋!送鲜花!

博客可以收入过千吗?

<2007年5月>
日一二三四五六29301
2345678910111213141516171819202122232425262728293031123456789

常用链接

留言簿(8)

随笔分类(314)

随笔档案(337)

文章分类(7)

文章档案(10)

相册

收藏夹(1)

其它

友情链接

数字电视

生活、旅游

自己的链接

计算机

搜索

  •  

积分与排名

  • 积分 - 408390
  • 排名 - 9

最新评论

阅读排行榜

评论排行榜