ServerSocket ss = new ServerSocket(8000)
这只是在某一个端口监听吧。
但是为什么客户端可以连接呢?明明还没有accept啊?

解决方案 »

  1.   

    我想端口监听了,就可以连接了
    但是你不能收发数据吧,因为没有对应的
    客户端的socket
      

  2.   

    Socket(InetAddress address, int port)
              创建一个流套接字并将其连接到指定 IP 地址的指定端口号。
    看看API。
      

  3.   

    服务器端监听,代表服务器已经开放了相应端口,客户端就已经可以连接了,并且客户端获得了连接的套接字,可以发送数据。(如果服务器发送的话,客户端就可以接收)服务器端的accept()函数会返回一个Socket,服务器端正是使用这个Socket进行数据发送和接收。服务器没有accept()之前,服务器无法发送和接收数据,客户端发来的数据,服务器根本没有接收
      

  4.   

    服务器端一般先接受,后发送
    客户端一般只发送. 如果你想要server/client都互相连接并且象qq一样互相聊天知道一方提出结束
    那你就需要用到线程了。
    在SERVER/CLIENT中都用THREAD 并且是在循环中用线程处理通信。
    好运 
      

  5.   

    我疑惑的原因是以往我使用的是winsock控件,在这个控件中有listen和accept方法。listen表示处于监听状态,在accept接受之后客户端才可以连接成功。
    java的这种机制我明白了,感谢