SOCKET线程问题,只要回答都有分(200分)

  • 主题发起人 主题发起人 http
  • 开始时间 开始时间
H

http

Unregistered / Unconfirmed
GUEST, unregistred user!
本人现在通过CLIENTSOCKET读取数据包,读后放入缓存,然后通过SERVERSOCKET给30个客户
现在,我想知道,是否可以用多个线程去读CLIENTSOCKET.SOCKET中的数据?如过可以,
是否在用SOCKET.READBUFFER的时候,要用Synchronize(读的过程)
又是否可以用多线成去用SERVERSOCKET发信息,如过可以,是否在用SOCKET.SENDBUFFER
的时候,要用Synchronize(发的过程)
SERVER不用阻塞,因为有可能从BUFFER读的包不是这线程要发的,所以自己开几个线程去发
缓存的线程临界问题就可以不要考虑,我已经解决了。
 
因该可以。
 
谢谢,那是否要用Synchronize(发的过程),以同步对SOCKET的调用?
 
listen.....
 
我感觉用CLIENTSOCKET的时候本身就是线程的,因为当我收消息时候,
当我READBUFFER并处理,SOCKET里还有数据时,它又会触发一次ONREAD事件,而且,
同时进行数据处理,并不等我第一次处理完,不知道你们认为是不是这样呢?
 
我想问一下:你这样在写的同时读,能否保证CLIENT信息全部都由SERVER转发给
别的CLIENT?
 
最好還是等讀完了再發﹐分一個分段嘛﹐每隔多少時段讀﹐讀完成再發﹐這樣好一些。
 
你这样在写的同时读,能否保证CLIENT信息全部都由SERVER转发给别的CLIENT?
为什么不能呢?
 
怎么那么麻烦?
其实用阻塞很好,一个连接就是一个线程,你设计线程的时候,做一个缓存,
这样每个连接/线程都有一个自己的缓存,
在读到数据的时候,你喜欢给哪个客户发,就往哪个连接的缓存里写数据。
这样的话,读数据只要一个线程,发数据只要连接的线程,省了很多事。
虽然没个线程一个缓存比公用一个缓存消耗资源多一点,但注意释放就没事的。
 
呵呵,大家好,其实我的公用缓存都做好了,临界控制也行了,现在只是如何出错处理
因为我接收的是流,所以从流中组装出一个一个数据包,形成记录包,用指针数组来指向
他们,所以内存不会浪费,再转发给客户,只是,如果当客户要求重发某个包,我怎么快
速定位到指定包,我不想重新循环数组,可以做到吗?是否可以建个索引?怎么建立呢
而且,请大家帮着考虑,如果,我想收到包后,启动一个写入数据库的线程,应该怎么写?
不是来一个包就启动一个线程,而是,调用已有的线程,是否可以,怎么写,请大家给个
小程序,可以吗?
 
http:如果你还要继续讨论请定期提前你的帖子,如果不想继续讨论请结束帖子。
 
多人接受答案了。
 
后退
顶部