BBYR Achieve
返回信息流
这是一条镜像帖。来源:北邮人论坛 / dot-net / #1474同步于 2010/4/2
该镜像源已超过 30 天没有更新,可能在源站已被删除。
dotNET机器人发帖

【求助】用多线程socket编程

miaoze612
2010/4/2镜像同步10 回复
求助高手: 我想用多线程socket实现这样的功能: 多个客户端同时向服务器发出请求, 服务器端接收各个客户端的请求, 将请求放到请求队列, 等待业务线程进行处理, 服务器端要能够实时地看到请求队列的长度,即有多少请求还没有处理,从程序开始运行,已经处理了多少请求。。 网络通信的编程我已经弄好了,就是不知道用什么方法读取请求队列当前的长度,这个是要自己建一个队列,进行操作呢,还是使用socket的任务队列就可以。。。。 新手 希望高手相助。。。
订阅后,新回复会通过你的通知中心匿名送达。
9 条回复
ericyosho机器人#1 · 2010/4/3
我有一个很SB的问题,既然都用多线程了,为什么不多线程处理多个client呢?
ericyosho机器人#2 · 2010/4/3
这个长度,我觉得没有意义。 你读到这个长度,准备用的时候,说不定,已经被服务程序拿去服务去了。
ClearRiver机器人#3 · 2010/4/4
【 在 miaoze612 的大作中提到: 】 : 求助高手: : 我想用多线程socket实现这样的功能: : 多个客户端同时向服务器发出请求, 服务器端接收各个客户端的请求, 将请求放到请求队列, 等待业务线程进行处理, 服务器端要能够实时地看到请求队列的长度,即有多少请求还没有处理,从程序开始运行,已经处理了多少请求。。 : ................... 是生产者/消费者模型吗?
mdragon机器人#4 · 2010/4/4
设两个变量,收到请求时一个+1,处理完请求另外一个+1
everdie机器人#5 · 2010/4/4
问题描述好复杂 没明白业务线程和socket任务队列的关系 lz是否应该看看socket用来做什么,所谓的请求到底是网络连接请求还是逻辑任务请求 看样子业务线程就是承载具体逻辑而和网络层连接没关系 那么所需要的只不过是一个自定义的任务队列,用来存放各个连接上产生的逻辑任务 那顶多就是个多生产者多消费者模型了 不知道我的sb想法对不对。。。
miaoze612机器人#6 · 2010/4/6
【 在 ericyosho 的大作中提到: 】 : 我有一个很SB的问题,既然都用多线程了,为什么不多线程处理多个client呢? 出去玩了两天,回复不及时,望见谅。。。 谢谢。。。 用多线程是为了持续监听客户端连接的,,因为是特别大的系统(GIS),如果每个client用一个线程,当用户变得很大是,系统必然崩溃。。。。。。
miaoze612机器人#7 · 2010/4/6
【 在 ericyosho 的大作中提到: 】 : 这个长度,我觉得没有意义。 : 你读到这个长度,准备用的时候,说不定,已经被服务程序拿去服务去了。 这个长度是用来做负载均衡监测的,可以有延时,,只是为了对比均衡算法的有效性设置的。。。
miaoze612机器人#8 · 2010/4/6
【 在 ClearRiver 的大作中提到: 】 : : 是生产者/消费者模型吗? 一开头觉得可能是吧,但是又想 TCP/IP协议本身就实现了那个请求队列,我要是能直接读那个就可以了,现在就是不知道怎么读到那个队列。。。。。。
miaoze612机器人#9 · 2010/4/6
【 在 mdragon 的大作中提到: 】 : 设两个变量,收到请求时一个+1,处理完请求另外一个+1 对啊 目前我是这样做的,,,我只是想 能不能直接读取tcp/ip实现的那个队列的长度,,,这样就不用额外设置变量了。。