higkoo 发表于 2007-12-6 11:44:23

web_set_sockets_option的含义

测试过程出现了 WSA_IO_PENDING 错误之后,添加了 web_set_sockets_option("OVERLAPPED_SEND", "0");就OK了

请问题web_set_sockets_option("OVERLAPPED_SEND", "0");的具体作用是什么?


web_set_sockets_option("OVERLAPPED_SEND", "0");

web_set_sockets_option("OVERLAPPED_SEND", "1");
的区别

已知web_set_sockets_option是与接口通讯有关的,附件为说明文档。

Zee 发表于 2007-12-7 14:18:38

这个挺有意思。没有用过这个函数。呵呵。

搬个板凳等着看。

Zee 发表于 2007-12-7 15:39:35

楼主的问题描述不是很清楚,比如:环境,操作系统,或者应用。都没有说。偶猜一下,错了,大家可以拍砖更正:

在LR中,默认情况下,OVERLAPPED_SEND应该是为可用的,这样的话,在socket层,可能就会开多个线程来处理数据,但是在不同的操作系统下,可能会有不同的处理。出现WSA_IO_PENDING 提示这个IO稍后处理。在socket中,我觉得应该是开多个线程来处理不异步的数据,所以楼主可以查一下出现这个问题,有没有出现多线程?
如果把它给禁掉,LR 编译后的代码应该是顺序执行的,不会多出线程来。这里,就是一个IO处理完了,再处理下一个。而不会动态的create 新的线程出来从而引出操作系统抛出WSA_IO_PENDING 信息,并在应用程序上显示出来。

higkoo 发表于 2007-12-7 22:02:15

回复 3# Zee 版主 的帖子

客户端是Winxp,服务器端是Win2003,局域网连接。
Apusic+SQLserverJavaB/S

按OVERLAPPED_SEND的字面意思理解 OVERLAPPED_SEND = 0 就是关闭交互连接,Zee版主的解释应该是正确的

我找了几个开发的,没有查出结果,还是Zee厉害!:handshake

higkoo 发表于 2007-12-7 22:07:19

初忠

最初我设置了OVERLAPPED_SEND前后,测试数据有一定的差别,所以担心会不会修改后的访问会不“可靠”(不如设置之前真实)。所以,在不清楚其作用的前提下,心里总会不踏实。

过后我专门来测试两者的差别,两者差异不大。

有兴趣的朋友也可以试、查查……

just_cici 发表于 2007-12-8 00:21:14

最近在折腾C/S的性能测试
又学习了~~但是发现坛子中类似的讨论贴不多,遗憾中~~

ebuluo 发表于 2007-12-12 15:34:35

恩,这种帖子才有存在的价值阿!很好,受教了

狂拽今生 发表于 2007-12-21 12:20:01

xiexie

sghgjgm2003 发表于 2011-5-24 09:33:33

顶起、、、谢谢

小白cool 发表于 2011-5-24 10:43:28

zee厉害

竹疏 发表于 2011-7-14 10:49:45

遇到同样的问题 尝试一下,
还是担心设置了 web_set_sockets_option会不会 使测试场景和用户实际使用时 不同,隐藏问题。

testxiaoxiao 发表于 2012-1-13 17:04:47

学习啦!

femir 发表于 2012-7-23 14:42:48

多并发是会概率出现session丢失的异常,错误数不多就十几条日志,请教前辈说加这个代码web_set_sockets_option("OVERLAPPED_SEND", "0"); 但是还是有错误,有没有人遇到过
页: [1]
查看完整版本: web_set_sockets_option的含义