网络编程的基础代码

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.PrintWriter;
import java.net.InetAddress;
import java.net.Socket;
import java.util.Scanner;

/**
 * 一对一阻塞
 * @author chenmin
 * 题目:实现客户端与服务端你一言我一语的对话,当输入“exit”时,分别退出;
 * 
 */
public class TestClient {

    public TestClient() {
        try {
            //创建一个Socket对象,客户端要连接的服务器的IP地址;客户端要连接的服务器的端口号
            Socket socket = new Socket("175.3.15.23", 6503);

            //进行数据传输,用流操作来传输
            
            //获得当前Socket对象相关的输出流,可以进行写数据操作
            PrintWriter pw = new PrintWriter(socket.getOutputStream());
            //获得当前Socket对象相关的输入流,可以进行读数据操作
            BufferedReader br = new BufferedReader(new InputStreamReader(
                    socket.getInputStream()));

            while (true) {
                //扫描器获得信息的输入
                Scanner scanner = new Scanner(System.in);
                System.out.println("Client端请输入:");
                //获得字符串,并将其写出
                String string = scanner.next();
                pw.println(string);
                //刷新该流的缓冲
                pw.flush();
                if ("exit".equals(string)) {
                    break;
                }
                //读出数据,并在控制台打印出来
                String str = br.readLine();
                System.out.println("Client端读到:" + str);
            }

            //关闭该流并释放与之关联的所有系统资源
            br.close();
            pw.close();
            socket.close();

        } catch (IOException e) {

        }
    }

    public static void main(String[] args) {
        new TestClient();
    }
}
mport java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.PrintWriter;
import java.net.ServerSocket;
import java.net.Socket;
import java.util.Scanner;

/**
 * 一对一阻塞
 * @author chenmin
 * 题目:实现客户端与服务端你一言我一语的对话,当输入“exit”时,分别退出;
 * 
 */
public class TestServer {

    public TestServer() {
        try {
            //创建一个ServerSocket对象
            ServerSocket ss = new ServerSocket(4455);
            System.out.println("服务器正在启动。。。。");

            //当服务器端启动以后,就可以接受客户端的请求
            Socket socket = ss.accept();
            System.out.println("用户接入成功。。。。");

            //进行数据传输
            //获得当前Socket对象相关的输入流,可以进行读数据操作
            BufferedReader br = new BufferedReader(new InputStreamReader(
                    socket.getInputStream()));
            //获得当前Socket对象相关的输出流,可以进行写数据操作
            PrintWriter pw = new PrintWriter(socket.getOutputStream());

            while (true) {
                //读出数据,并在控制台打印出来
                String string = br.readLine();
                System.out.println("Server端读到:" + string);
                //扫描器获得信息的输入
                Scanner scanner = new Scanner(System.in);
                System.out.println("Server端请输入:");
                //获得字符串,并将其写出
                String str = scanner.next();
                pw.println(str);
                //刷新该流的缓冲
                pw.flush();
                if ("exit".equals(str)) {
                    break;
                }
            }

            //关闭该流并释放与之关联的所有系统资源
            pw.close();
            br.close();
原文地址:https://www.cnblogs.com/-strong/p/7157303.html