急.如果让异步socket强制关闭连接不出现半连接?(分没了,但帮解决者站内PM酬谢100元移动话费卡密,食言者猪狗) 本帖最后由 yzmsb 于 2009-09-25 14:11:37 编辑 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 不能够理解你的设计思想首先,本来就是高负荷的环境,通常都是常用长连接。用短连接是自己找不自在。其次,作为服务器,通常都是侦听一个端口(网络游戏的服务端,SQL Server, Http Server, Ftp Server, Mail Server等等都是这样干的),然后让所有的客户端连接这个端口就是。根本就不存在 Socket 占用资源的问题。如果不是一些其他因素,例如用户需求(用户楞要这样干没有办法),安全,网络要求等等原因。个人认为楼主的设计是自己找麻烦。 不是的呀。。我在写大量账号自动投票器。。即先登陆对方服务器取的sessionID再进行投票。。因为会有延尽,我理解的是使用异步socket比较有效率,httprequest限制太多不好写http呀。socket的包想咋模拟就咋模拟 这想法挺好的。。可问题就是产生很多time_wait状态的。。因为路由限制,一达到一两千time_wait程序就停滞不前了httprequest.abort()可以无这些问题.socket有没有类似abort这样的方法呢? 对了。长连接是不是也可以异步进行http通讯呀? 长连接可以异步进行http通讯,而且很常见原来你在制造大量的客户端啊。若是 Socket.Close() 不能及时关闭套接字,这个就不知道咋办好了。或者可以换个角度,把一台计算机虚拟为多台计算机,那样软件资源上的限制就拓宽了很多。 经过测试使用 if (srecv.Contains("GMT")) { clientSocket.Close(); }没有time_wait这样的连接产生。。但是如果这样就无法判断该账号投票是否已成功,我想能不能让接收队例里留几字节,比如 </body></html> 这些东西就不要了。。在recr.lenght-几字节的时候就clientSocket.Close();...这样肯定没有time_wait产生,希望有哪位朋友能帮我实现这个想法,酬谢100元话费决不食言! 我觉得应将建立一个类,它与 Socket 是一一对应的关系。是否投票成功,是由这个类来决定的。而不是去判断接受的内容。你不是直接在 Socket 上编程,而是在别人的代码上扩展? 嗯水平有限,,都是修改的别人的代码现在功能正常,但就是N多的time_wait严重制约了性能。你好。你说的通过类来判断,如果对方不返回信息,这个类咋判断是否已经投票成功了呢? 其实我的目的就是尽可能多的模拟出大量“客户端IE”进行登陆网站服务器再投票操作。。页N多的time_wait限制了我的初衷想法。 只要哪位朋友能提供socket的和request.abort()相似的功能或方法就赠送100话费卡密,食言者畜牲,大家见证!我用reuqest.abort()试了没有一个time_wait的半连接存在 其他的应用我都写好了呀。只要解决这个time_wait半连接就行呀...会的网友一行代码就能解决了呀 程序中加个哈希表用来socket当前连接的request进行一一映射,如果你想断开某个socket,照你这意思,于此socket对应的request进行abort(),是不是就可以了?我不知道你的request是一个还是每个连接一个。 你好。不是request。而是直接使用socket的异步接收方法。其他都正常。就是路由限制了我的机只能创建几千连接。而大量time_wait就耗光了资源 socket都要设置 SO_REUSEADDR属性if( setsockopt(listenfd, SOL_SOCKET, SO_REUSEADDR, &flag, len) == -1) { perror("setsockopt"); exit(1); } if( bind(listenfd,(struct sockaddr*)&servaddr,sizeof(servaddr)) == -1) { perror("bind"); exit(1); } else printf("bind call OK!\n"); 你好。。这个方法没用呀。。在没有获得数据时不好判断接收队列里还有没有东西。只有在接收队列里还有东西存在,那怕一字节,socket.close()断开就会没有半连接出现。。我想只有先接收内容才能根据内容判断有没有呀 多线程传递参数的问题 对某一网站验证码的研究。 怎么给右击菜单动态的添加事件 WPF,空白、换行是怎么处理的哦 PDF 批量打印 winform的一个问题,高手进来 语言 怎么在定时器中更新LABEL的值,请看代码 如何设置生成的word表格的线条的粗细? (100分)求WinForm中DataGridView的行头合并与列头合并问题,此外如何在Cell中显示图片,如何实现cell合并,如哪位又比较好的课程表与源代码,可以卖给我 c# 点 事件触发 关于常量与类中只读属性的探讨
不是的呀。。我在写大量账号自动投票器。。即先登陆对方服务器取的sessionID再进行投票。。因为会有延尽,我理解的是使用异步socket比较有效率,httprequest限制太多不好写http呀。socket的包想咋模拟就咋模拟
这想法挺好的。。可问题就是产生很多time_wait状态的。。因为路由限制,一达到一两千time_wait程序就停滞不前了httprequest.abort()可以无这些问题.socket有没有类似abort这样的方法呢?
if (srecv.Contains("GMT"))
{
clientSocket.Close();
}
没有time_wait这样的连接产生。。但是如果这样就无法判断该账号投票是否已成功,我想能不能让接收队例里留几字节,比如 </body></html> 这些东西就不要了。。在recr.lenght-几字节的时候就clientSocket.Close();...这样肯定没有time_wait产生,希望有哪位朋友能帮我实现这个想法,酬谢100元话费决不食言!
嗯水平有限,,都是修改的别人的代码现在功能正常,但就是N多的time_wait严重制约了性能。你好。你说的通过类来判断,如果对方不返回信息,这个类咋判断是否已经投票成功了呢?
我用reuqest.abort()试了没有一个time_wait的半连接存在
其他的应用我都写好了呀。只要解决这个time_wait半连接就行呀...会的网友一行代码就能解决了呀
我不知道你的request是一个还是每个连接一个。
你好。不是request。而是直接使用socket的异步接收方法。其他都正常。就是路由限制了我的机只能创建几千连接。而大量time_wait就耗光了资源
1)
{
perror("setsockopt");
exit(1);
}
if( bind(listenfd,(struct sockaddr*)&servaddr,sizeof(servaddr)) ==
-1)
{
perror("bind");
exit(1);
}
else
printf("bind call OK!\n");
你好。。这个方法没用呀。。在没有获得数据时不好判断接收队列里还有没有东西。只有在接收队列里还有东西存在,那怕一字节,socket.close()断开就会没有半连接出现。。我想只有先接收内容才能根据内容判断有没有呀