首页 > 编程语言 >java网络编程-待测试

java网络编程-待测试

时间:2023-02-28 17:48:25浏览次数:33  
标签:writer java socket 编程 System 测试 reader println new

public class Server2 {
    public static void main(String[] args) throws Exception {
        System.out.println("==服务器的启动==");
        // 1.注册端口
        ServerSocket serverSocket = new ServerSocket(8888);
        while (true) {
            //2.每接收到客户端的连接,就新建一个线程进行处理
            Socket socket = serverSocket.accept();
            new ServerReadThread(socket).start();
            System.out.println(socket.getRemoteSocketAddress() + "上线!");
        }
    }

    static class ServerReadThread extends Thread {
        private Socket socket;

        public ServerReadThread(Socket socket) {
            this.socket = socket;
        }

        @Override
        public void run() {
            BufferedWriter writer=null;
            BufferedReader reader=null;
            try {
                 writer=new BufferedWriter(new OutputStreamWriter(socket.getOutputStream()));
                //4.把字节输入流包装成自己需要的流进行数据的读取。
                 reader = new BufferedReader(new InputStreamReader(socket.getInputStream()));
                //5.循环读取数据并打印到屏幕
                String line;
                while ((line = reader.readLine()) != null) {
                    System.out.println("收到:" + line);
                    writer.write("hello,"+line+"\n");
                }
            } catch (IOException e) {
                System.out.println(socket.getRemoteSocketAddress() + "下线!");
            }finally {
                try {
                    writer.close();
                    reader.close();
                    socket.close();
                } catch (IOException e) {
                    System.err.println(e.getMessage());
                }
            }
        }
    }
}

 

 

public class Client2 {
    public static void main(String[] args) {
        Socket socket = null;
        BufferedReader reader = null;
        BufferedWriter writer = null;
        BufferedReader consoleReader = null;
        try {
            socket=new Socket("127.0.0.1",8888);
            reader=new BufferedReader(new InputStreamReader(socket.getInputStream()));
            writer=new BufferedWriter(new OutputStreamWriter(socket.getOutputStream()));
            consoleReader=new BufferedReader(new InputStreamReader(System.in));
            while (true){
                String line = consoleReader.readLine();
                writer.write(line+"\n");
                writer.flush();

                String msg= reader.readLine();
                System.out.println(msg);

                if(line.equalsIgnoreCase("quit")){
                    break;
                }
            }
        } catch (IOException e) {
            System.err.println(e);
        }finally {
            try {
                writer.close();
                socket.close();
                System.out.println("关闭socket");
                reader.close();
                consoleReader.close();
            } catch (IOException e) {
                System.err.println(e.getMessage());
            }
        }
    }
}

 

标签:writer,java,socket,编程,System,测试,reader,println,new
From: https://www.cnblogs.com/wangbin2188/p/17165305.html

相关文章

  • git push 时出现 "error:unpack failed:error Java heap space"
    原因:推送的远程服务器的文件太大了解决方法:方法一:git--no-thinpush方法二:使用gitlfs可以在网上找方法如何使用:        windows下先下载:lfs软件 ......
  • JavaScript Window Screen
    JavaScript WindowScreenwindow.screen对象包含有关用户屏幕的信息。WindowScreenwindow.screen对象在编写时可以不使用window这个前缀。一些属性:screen.ava......
  • JavaScript Window - 浏览器对象模型
    JavaScript Window-浏览器对象模型浏览器对象模型(BOM)使JavaScript有能力与浏览器"对话"。浏览器对象模型(BOM)浏览器对象模型(Browser Object Model(BOM)......
  • JavaScript Window Location
    JavaScript WindowLocationwindow.location对象用于获得当前页面的地址(URL),并把浏览器重定向到新的页面。WindowLocationwindow.location 对象在编写时可不使......
  • canoe和python_给CANoe编程上点套路 – CAPLdll
    canoe和python_给CANoe编程上点套路–CAPLdllweixin_39585974于2020-12-2222:19:59发布734收藏8文章标签:canoe和python版权汽车电子攻城狮:“数据处理算法有点复......
  • 解决Java读取数据库的时间类型时大8小时时差问题
    解决办法:在jdbc连接中设置serverTimezone参数,指定为东八区,可以使用serverTimezone=Asia/Shanghai或者serverTimezone=GMT%2b8如:jdbc:mysql://127.0.0.1:3306/demo_ds......
  • JavaScript 闭包
    JavaScript 闭包JavaScript变量可以是局部变量或全局变量。私有变量可以用到闭包。全局变量函数可以访问由函数内部定义的变量,如:实例functionmyFunction(){......
  • JavaScript Array(数组) 对象
    JavaScript Array(数组) 对象数组对象的作用是:使用单独的变量名来存储一系列的值。在线实例创建数组,为其赋值:实例varmycars=newArray();mycars[0]="Saab......
  • JavaScript Math(算数) 对象
    JavaScript Math(算数) 对象Math(算数)对象的作用是:执行常见的算数任务。在线实例round()如何使用round()。random()如何使用random()来返回0到1之间的随机数......
  • java文件的操作
    读Stringfilename="文件路径\\目标文件+文件后缀名"; java.io.Filefile=newjava.io.File(filename);\\创建一个文件类并赋予路径java.io.FileInputStreamfis=......