Java Socket网络编程-

来源:互联网 发布:mars源码 编辑:程序博客网 时间:2024/05/19 09:49
/** * 先运行server类再运行client类 * 然后在client的控制台输入消息,当输入bye时server和client都退出 * @author liuhuiyan * */public class TalkServer {    public static void main(String[] args) throws Exception{        //创建一个服务端,监听端口为9997        ServerSocket server = new ServerSocket(9997);        System.out.println("服务端准备完毕,等待客户端连接...");        Socket socket = server.accept();//等待客户端的请求        //服务端读取接收的数据serverin就是客户端从键盘输入接收的数据,        BufferedReader serverin = new BufferedReader(new InputStreamReader(socket.getInputStream()));        //把服务器接收的数据通过客户端的控制台显示出来        PrintWriter out = new PrintWriter(socket.getOutputStream());        while(true){            //利用BufferedReader缓冲输入流将服务端接收的数据以字符串的形式输出            String msg = serverin.readLine();            System.out.println(msg);            out.println("服务端已成功接收到数据: "+msg);            out.flush();            if (msg.equals("bye")) {                break;            }        }        socket.close();    }}
public class TalkClient {    public static void main(String[] args) throws Exception{        //向本机的4700端口发送请求        Socket socket = new Socket("localhost", 9997);        BufferedReader in = new BufferedReader(new InputStreamReader(socket.getInputStream()));        //Socket对象得到输出流,并构造PrintWriter对象        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();    }}
0 0
原创粉丝点击