为什么我用SPI中的Send函数拦不住某些包呢?

redsea317 2009-07-18 11:58:14
先谢了。
局域网,软件用TCP协议,我用commview拦下的软件发送的包是两个,但用SPI的SEND函数却拦不住。自己用监控API的软件看了看,就是用SEND函数发出去的,晕,关键的是所有的小一点的包都拦住了,是不是这个包太大了(commview拦下的两个包加起来大小是2200多)就拦不住啊?为什么其它的包都拦得住,偏偏这个包根本就看不到有它呢?
软件其实是先接收包的,接收到的包用commview看也是两个,一个1500,一个700多,用SPI的RECEVIE到也能拦得住,可以处理的,但看到的是一个包,大小是commview两个包的和。结果到软件发送包的时候,commview看到的是两个包,SPI的就没看到有一个大一点的包发出去的。晕啊~~
我在网上查资料,说WSASEND有重叠操作,重叠操作后的包在SEND中的参数中是看不到大小的,说具体数据在SEND中的参数中不刷新,只能在GETOVERLAP那个函数中看到大小,请问SEND也会有这个问题吗?上面说的看不到发出去的那个包,会不会就是这个原因看不到啊?
哪位高手可以帮帮忙了~
如果有比较全的资料的话,可否给我推荐一份呢?谢谢~~
...全文
106 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
redsea317 2009-08-09
  • 打赏
  • 举报
回复
bigpeon兄:
可否给出相关代码啊?新手,菜鸟,代码也得研究好久呢~谢谢~
redsea317 2009-07-19
  • 打赏
  • 举报
回复
呵呵,太久不来了,怎么把分提高的多一些啊?
wwwxkrs 2009-07-19
  • 打赏
  • 举报
回复
SPI复杂又垃圾,tdixxxxx ndisxxxx 的调用统统拦不住,还是用ndis好
bigpeon 2009-07-19
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 bigpeon 的回复:]
WSPGetOverlapped 函数。

在WSPSend函数里先保存一下 overlapped 指针,进入WSPGetOverlapped 时判断 overlapped 地址和进程号,如果符合就是刚才重叠发送的结果,返回结构包含了实际发送长度。
[/Quote]

应该有更好的方法,我这招比较简单省事儿
bigpeon 2009-07-19
  • 打赏
  • 举报
回复
WSPGetOverlapped 函数。

在WSPSend函数里先保存一下 overlapped 指针,进入WSPGetOverlapped 时判断 overlapped 地址和进程号,如果符合就是刚才重叠发送的结果,返回结构包含了实际发送长度。
redsea317 2009-07-19
  • 打赏
  • 举报
回复
谢了,不过这个程序写了这么久,就差这一点了,还是很想写完它。 请问我在哪个函数里获得并使用WSPSEND函数的返回值啊?我想用overlapped函数但不知该怎么用。
redsea317 2009-07-19
  • 打赏
  • 举报
回复
谢了,不过这个程序写了这么久,就差这一点了,还是很想写完它。 请问我在哪个函数里获得并使用WSPSEND函数的返回值啊?我想用overlapped函数但不知该怎么用。

18,356

社区成员

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

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