RT,我想用一对ClientSocket1和ServerSocket1启动另一对ClientSocket2和ServerSocket2。第一对成功连接后点击某按钮,ClientSocket1发送消息'1',ServerSocket1接收消息后ServerSocket2.Open,然后再由ServerSocket2返回一个消息'1'给ClientSocket1。ClientSocket1接收到该消息后(当然是在OnRead事件里)设置ClientSocket2的IP地址和端口并且ClientSocket2.Open。|||然后我让ClientSocket2.Socket.SendText('aaa');(即是在ClientSocket1的OnRead事件里发送这个消息)。这时问题出现了,程序运行后,ClientSocket2和ServerSocket2能成功进行连接,(由OnConnect事件可知),但ServerSocket2的OnRead就是接收不到ClientSocket2发送的'aaa'。这是为什么呢?是因为不能在在ClientSocket1的OnRead事件里发送这个消息吗?PS:我试过了程序启动后同时启动两对ClientSocket和ServerSocket,这个时候点击某按钮发送消息给ServerSocket2,则其就能接收到消息。但是同时启动的话逻辑很混乱而且有的时候没有必要T_T请各位大虾解答~~~谢谢!

解决方案 »

  1.   

    然后再由ServerSocket2返回一个消息'1'给ClientSocket1连都没有连接,怎么能接收数据
    感觉你的整个逻辑有问题.理顺一下.
      

  2.   

    C1        S1       C2         S2
     | -'1'->  |        |          |
     |         | -------------->   |
     | <-'1'-  |        |          |
     | ---------------> |          |
     |                  | -'aaa'-> |你的问题在于:
    "然后我让ClientSocket2.Socket.SendText('aaa');"  时,可能并未连接成功。 你应该在 ClientSocket2 的 OnConnect 事件里再发  'aaa'。
      

  3.   

    为什么要用两对ClientSocket和ServerSocket呢
    如果用两对那么ServerSocket要分别监听不同的端口才行
      

  4.   

    ClientSocket1都没连上ServerSocket2,能收到'1'的消息就见鬼了.
      

  5.   


    好玩思路不太对头用一个Socket去"直接通知"另一个去做什么本来就比较危险总应该有个中间控制的过程,无论是出于什么目的