你的多线程不是用的TServerClientThread继承下来的吗?
一个线程对应包括本线程的一个ClientSocket和一个ServerSocket。。
帮助上多少谈了一些

解决方案 »

  1.   

    是的,是继承的,一个线程是包括SERVER和CLIENT,但我的问题上有一个独立的CLIENT SOCKET
    是连接到其他SERVER的SERVER SOCKET的,图:
       CLIENT SOCKET<——>   CLIENT SOCKET <——>   CLIENT SOCKET  <——>\SERVER SOCKET<----->CLIENT SOCKET<------>SERVER SOCKET
       
      

  2.   

    对不起,错了,前几个CLIENT SOCKET有换行的,他们都与SERVER SOCKET连接的
           
      
         
      

  3.   

    读的线程怎么与客户线程交换数据呢
    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    你的程序中是一个sorver socket对应多个client socket的吧,那应该会有多个通道的.
    直接在程序中判断然后再选择用哪个通道不就可以可吗?
      

  4.   

    我读的线程是去读其他服务器的数据,读到后,送给连接到本机的客户(客户与本机的SERVER SOCKET 阻塞连接的)
      

  5.   

    客户1  客户2---[(SERVER SOCKET)---CLIENT SOCKET ]----[SERVER SOCKET]
    客户3  /|-------------服务器1--------------|----|---服务器2---|
      

  6.   

    我现在也在处理这个问题,我们讨论一下吧。
    我是这样处理的,运态给client分配端口,server有一个端口1专门用来监听,
    每一个请求,SERVER就动态生成一个serversocket,即是动态分配一个端口2(3..n)给客户端,然后通知客户端,更改通讯端口,和新生成的serversocket通讯,这样客户端就和服务器就可以“安全”通讯了,单独的通讯线程也建立了。
      

  7.   

    呵呵,可能我的表达有问题
    我换个说法:
    假设我的SERVERSOCKET用阻塞线程的方式与客户通讯,那么一个客户一个线程,现在假如有个读
    数据库的线程,也就是生产线程,那么前面的通讯线程也就是消费线程,现在,生产线程读出客户数据,然后送给相应的消费线程,那么生产与消费线程怎么通讯呢,因为这个时候是两两数据交换,难道要每个交换都定一个临界变量吗?