socket 分客户端和服务端
客户端:Socket socket= new Socket(ip,端口号);
服务段: ServerSocket server = new ServerSocket(端口号);
应该是监听同一个端口
流应该是有很种,你该根据你的需要来定。

解决方案 »

  1.   

    楼上说的对,应该是分服务端和客户端的:
    在服务端建立一个监听,等待客户端的连接。
    ServerSocket server = new ServerSocket(端口号);//端口号就是绑定的监听端口号
    while(true){
      Socket socket = server.accept();            //利用一个死循环实现不间断的监听.如
                                                  //果监听到客户端的连接请求,则得到一
                                                  //socket对象。这时候可以进行数据的读
                                                  //取等操作
      …
    }客户端:
    Socket socket= new Socket(ip,port);        //ip是服务端的ip,port是服务端绑定的监
                                               //听端口
    …                                         //发送等…这样就可以实现楼主的要求了
      

  2.   

    1、客户端和服务端是采用一收(read)一发(write)(收发可以在客户端也可在服务端,但一方收,另一方必须有对应的发)
    2、要重复当然需要循环。
      

  3.   

    当然不是了。
    服务器端应该是在建立服务器socket之后。用循环不断获取客户的信息,进行相应的操作。最后关闭服务器端的socket.
    客户端:也要在建立socket之后,只要根据你的输入信息来作相应的循环就可以了。
      

  4.   

    死循环的作用是等待client端的连接。一但连接上就建立了握手,在断开之前可以一直收发数据的。在循环中是不用断开的,除非你有这样的需要。
      

  5.   

    就是说可以把循环放在stream的读写那块了?
      

  6.   

    首先,ServerSocket生成一个TCP的Server端,假设端口号为7777
    再次,循环监听
          for (;;)
          {
              Socket nextClient = server.accept(); // 得到一个客户端
              OutputStream out = nextClient.getOutputStream(); 客户端的输出流
              PrintStream pout = new PrintStream(out); // 用于回显给客户信息
              pout.print(new java.util.Date()); // 客户可以看到服务器端当前日期
              out.flush();
              out.close(); 
              nextClient.close();
          }
    启动好Server之后,启动Client
          Socket client = new Socket(hostname, 7777);
          client.setSoTimeout(2000);
          BufferedReader reader = new BufferedReader(new InputStreamReader(client.getInputStream())); // 封装输入流的缓冲读取器
          reader.readLine(); // 读取服务器端回显的信息大致过程就是这样了,也就是说,每次客户端向服务器端请求一次,服务器端就会回显一个日期给客户。
      

  7.   

    楼上的,你的客户端要想循环的话,需要在什么地方开始循环??就是说,我想要客户端一条一条的向服务器发信息?是不是循环加在这里?
    while(true)
    {
       Socket client = new Socket(hostname, 7777);
    client.setSoTimeout(2000);
    PrintWriter pw = new PrintWriter(client.getOutputStream());
    pw.println("*****");}