Java网络编程

package com.fz.song;

import java.io.*;
import java.net.ServerSocket;
import java.net.Socket;

/**
 * 学习Java网络知识
 */

//这是一个服务端
//
public class Server {


    public static void main(String[] args) throws IOException {
        //获取一个服务ServerSocket对象
        //new 一个服务器端的ServerSocket
        ServerSocket serverSocket = new ServerSocket(8888);
        //调用accept来接受请求
        Socket socket = serverSocket.accept();
        //获取ip地址
        String hostAddress = socket.getInetAddress().getHostAddress();
        System.out.println(hostAddress + ":链接成功");
        //从Socket获取输入流
        BufferedReader br = new BufferedReader(new InputStreamReader(socket.getInputStream()));
        //BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(socket.getOutputStream()));
        PrintWriter pw = new PrintWriter(socket.getOutputStream(), true);
        String line = "";
        while ((line = br.readLine()) != null) {
            System.out.println("line = " + line);
            if (line.equals("over")) {
                break;
            } else {
//                bw.write(line.toUpperCase());
//                bw.newLine();
//                bw.flush();
                pw.println(line.toUpperCase());
            }
        }
        System.out.println(hostAddress + ":关闭链接");
        br.close();
        pw.close();
        //bw.close();
        socket.close();
    }
}
package com.fz.song;

import java.io.*;
import java.net.Socket;

/**
 * 这是一个客户端
 */
public class Client {


    public static void main(String[] args) throws IOException {
        //创建一个客户端的Socket
        Socket socket = new Socket("127.0.0.1", 8888);
        //获取键盘输入流
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        //BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(socket.getOutputStream()));
        PrintWriter  pw=new PrintWriter(socket.getOutputStream(),true);
        BufferedReader br2=new BufferedReader(new InputStreamReader(socket.getInputStream()));
        while (true) {
            String line = br.readLine();
//            bw.write(line);
//            bw.newLine();
//            bw.flush();
            pw.println(line);
            if (line.equals("over")) {
                break;
            } else {
                String str = br2.readLine();
                System.out.println("返回值 = " + str);
            }
        }
        br.close();
        //bw.close();
        br2.close();
        socket.close();

    }

}
原文地址:https://www.cnblogs.com/songfahzun/p/8299143.html