现在问个问题真难。是.net方面Socket太弱了?

解决方案 »

  1.   

    恩,看见你的短消息了.其实一般在做socket的时候,尤其是你这种chating的,都是要做一个socket的wrapper,就是要把socket封装起来. 而不是和生socket直接对话.如class SocketWrapper{
    int id;
    String ip;
    Socket socket;
    ……………………
    setter & getter
    ……………………
    }队列里存放的是这些wrapper对象,而这些wrapper在java里叫javabean,这和.NET里的用户控件很相像.我举的例子只是泛化后东西,你的wrapper里一般不需要setter函数..NET里高手那么多,你应该去.NET问一下,可能会有更好的结果.
      

  2.   

    我做了wrapper了。可是阻塞了10个Socket,忽然有一个激活了。怎么知道是那一个呢?
      

  3.   

    不知道的。是有ID。可是我要先知道是那个Socket才能取出ID的。
    while(true)//
    {
    //第30行。
    try
    {byte[] bytes=new byte[1024];//以1024为单位
    int bytesRec=flashSocket[k].Receive(bytes);//接受
    有一个Socket激活后会中断在//第30行。,这个时候怎么取得是那个Socket对象呢?
      

  4.   

    一个线程在一个时间里只能对一个socket进行处理while(true){
      this.myid = wrapper.id;
      flashSocket[k].socket.Receive(bytes);
    }
      

  5.   

    在socket被那个线程侦听的时候。就是在进入线程侦听之前。那个K是变的。是从1到10这10个socket都进入了线程。都阻塞在那个线程里了。但是如果这时某个激活了。不知道是那个呀!我主要是想实现一上线程侦听多个socket,不知有没有其它的好办法。