java吧 关注:1,243,409贴子:12,718,717
  • 6回复贴,共1

新手问个作业问题,关于socket的server代码的

只看楼主收藏回复

不是多线程的,想问怎么改,可以让client里输入bye,client退出,server继续运行。。
server代码如下:
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.PrintWriter;
import java.net.ServerSocket;
import java.net.Socket;
public class SocketManager {
public static void main(String[] args) throws IOException {
ServerSocket server = new ServerSocket(10000);
Socket socket = server.accept();
BufferedReader in = new BufferedReader(new InputStreamReader(socket.getInputStream()));
PrintWriter out = new PrintWriter(socket.getOutputStream());
while (true) {
String msg = in.readLine();
System.out.println(msg);
out.println("Server received " + msg);
out.flush();
if (msg.equals("bye")) {
break;
}
}
socket.close();
}
}


IP属地:广东1楼2015-05-17 19:55回复
    client代码如下:
    import java.io.BufferedReader;
    import java.io.InputStreamReader;
    import java.io.PrintWriter;
    import java.net.Socket;
    public class SocketClient {
    public static void main(String[] args) throws Exception {
    Socket socket = new Socket("127.0.0.1", 10000);
    BufferedReader in = new BufferedReader(new InputStreamReader(socket.getInputStream()));
    PrintWriter out = new PrintWriter(socket.getOutputStream());
    BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));
    while (true) {
    String msg = reader.readLine();
    out.println(msg);
    out.flush();
    if (msg.equals("bye")) {
    break;
    }
    System.out.println(in.readLine());
    }
    socket.close();
    }
    }


    IP属地:广东2楼2015-05-17 19:56
    回复
      server里去掉
      if (msg.equals("bye")) {
      break; 也不行


      IP属地:广东3楼2015-05-17 19:57
      回复
        自己百度 去


        IP属地:北京4楼2015-05-17 19:57
        收起回复


          这是客户端(ClientDemo)和服务器端,你自己研究一下吧。


          IP属地:山东6楼2015-05-17 20:18
          收起回复