询问者
C# Socket网络编程转发器的问题

问题
-
我现在需要做一个socket转发器,转发程序接收到的是一个来自Asp.net server发来的一组请求(请求数组),转发器将这些请求拆分后放到不同的线程里(异步回调),发送到不同的服务器上(根据单个请求中的信息判定),待到有服务器的任务执行完成后,将请求返回到转发器中,转发器将结果回送到asp.server上。
问题1:如何能够控制将一组请求拆分放到不同的线程中?
问题2:如何能完成当一个服务器完成任务后回送结果至转发服务器后,转发服务器立即将结果回送至asp.net server,转发器不需要等待所有执行任务的服务器完成任务才回送结果?
问题3:请问有没有类似的代码,可供参考?
全部回复
-
我现在需要做一个socket转发器,转发程序接收到的是一个来自Asp.net server发来的一组请求(请求数组),转发器将这些请求拆分后放到不同的线程里(异步回调),发送到不同的服务器上(根据单个请求中的信息判定),待到有服务器的任务执行完成后,将请求返回到转发器中,转发器将结果回送到asp.server上。
问题1:如何能够控制将一组请求拆分放到不同的线程中?
问题2:如何能完成当一个服务器完成任务后回送结果至转发服务器后,转发服务器立即将结果回送至asp.net server,转发器不需要等待所有执行任务的服务器完成任务才回送结果?
问题3:请问有没有类似的代码,可供参考?
自己顶下,转发的功能用异步回调做出来了。但是,如何将Web的一组请求,分配到不同的线程里呢? -
你好,我想你可以考虑用一下线程池的技术,当一个Web请求的连接处于空闲时,为这个连接分配的线程资源会返还到线程池,可以供新的连接使用;当原来处于空闲的连接的客户发出新的请求,会从线程池里分配一个线程资源处理这个请求。 这种技术在连接处于空闲的机率较高、并发连接数目很多的场景下对于降低服务器的资源负载非常有效。
有关线程池的介绍和使用,请参考下面两篇文章:
http://www.cnblogs.com/shipfi/archive/2005/09/04/229899.html
http://blog.csdn.net/wuqiubin/archive/2009/01/08/3732004.aspx
希望对你有帮助。
谢谢
Jackie Sun [MSFT]
如果您对我们的论坛在线支持服务有任何的意见或建议,请通过邮件告诉我们。
立刻免费下载 MSDN 论坛好帮手