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是与接口通讯有关的,附件为说明文档。 这个挺有意思。没有用过这个函数。呵呵。
搬个板凳等着看。 楼主的问题描述不是很清楚,比如:环境,操作系统,或者应用。都没有说。偶猜一下,错了,大家可以拍砖更正:
在LR中,默认情况下,OVERLAPPED_SEND应该是为可用的,这样的话,在socket层,可能就会开多个线程来处理数据,但是在不同的操作系统下,可能会有不同的处理。出现WSA_IO_PENDING 提示这个IO稍后处理。在socket中,我觉得应该是开多个线程来处理不异步的数据,所以楼主可以查一下出现这个问题,有没有出现多线程?
如果把它给禁掉,LR 编译后的代码应该是顺序执行的,不会多出线程来。这里,就是一个IO处理完了,再处理下一个。而不会动态的create 新的线程出来从而引出操作系统抛出WSA_IO_PENDING 信息,并在应用程序上显示出来。
回复 3# Zee 版主 的帖子
客户端是Winxp,服务器端是Win2003,局域网连接。Apusic+SQLserverJavaB/S
按OVERLAPPED_SEND的字面意思理解 OVERLAPPED_SEND = 0 就是关闭交互连接,Zee版主的解释应该是正确的
我找了几个开发的,没有查出结果,还是Zee厉害!:handshake
初忠
最初我设置了OVERLAPPED_SEND前后,测试数据有一定的差别,所以担心会不会修改后的访问会不“可靠”(不如设置之前真实)。所以,在不清楚其作用的前提下,心里总会不踏实。过后我专门来测试两者的差别,两者差异不大。
有兴趣的朋友也可以试、查查…… 最近在折腾C/S的性能测试
又学习了~~但是发现坛子中类似的讨论贴不多,遗憾中~~ 恩,这种帖子才有存在的价值阿!很好,受教了 xiexie 顶起、、、谢谢 zee厉害 遇到同样的问题 尝试一下,
还是担心设置了 web_set_sockets_option会不会 使测试场景和用户实际使用时 不同,隐藏问题。 学习啦! 多并发是会概率出现session丢失的异常,错误数不多就十几条日志,请教前辈说加这个代码web_set_sockets_option("OVERLAPPED_SEND", "0"); 但是还是有错误,有没有人遇到过
页:
[1]