美文网首页
Socket的使用回顾

Socket的使用回顾

作者: 老林_ | 来源:发表于2021-05-28 09:43 被阅读0次

使用socket连接

try(Socket socket=new Socket("127.0.0.1",8988)){
            final InputStream inputStream = socket.getInputStream();
            final OutputStream outputStream = socket.getOutputStream();
            PrintWriter printWriter=new PrintWriter(outputStream,true);
            printWriter.println("GET /hello.txt HTTP/1.1");//GET url 协议
            printWriter.println("Host: localhost"); //Host请求头
            printWriter.println("Connection: Close");//关闭连接
            printWriter.println(); //Http请求的格式
            BufferedReader bufferedReader=new BufferedReader(
                    new InputStreamReader(inputStream,"GBK")
            );
            boolean getting=true;
            StringBuffer sb=new StringBuffer();
            while (getting){
                if(bufferedReader.ready()){
                    int b=bufferedReader.read();
                    while (b!=-1){
                        sb.append((char)b);
                        b=bufferedReader.read();
                    }
                    getting=false;
                }
            }
            System.out.print(sb);
        }catch (Exception ignored){

        }

使用socket 服务端

@Test
    public void socketServer(){
        try (ServerSocket serverSocket=new ServerSocket(8886)){
            Socket accept = serverSocket.accept();//等待连接
            final OutputStream outputStream = accept.getOutputStream();//接收到连接后返回的值
            PrintWriter printWriter=new PrintWriter(outputStream,true);
            printWriter.println("回复给你的消息");
            printWriter.flush();

            printWriter.close();



        }catch (Exception e){
            e.printStackTrace();
        }
    }

使用socket客户端

@Test
    public void socketClient(){
        try (Socket socket=new Socket("127.0.0.1",8886)){
            final OutputStream outputStream = socket.getOutputStream();
            PrintWriter printWriter=new PrintWriter(outputStream);
            printWriter.println("GET / HTTP/1.1");
            printWriter.println("Host: localhost");
            printWriter.println("Connection: Close");
            printWriter.println();

            final InputStream inputStream = socket.getInputStream();
            Scanner scanner=new Scanner(inputStream, "utf-8");
            while (scanner.hasNextLine()){
                System.out.print(scanner.nextLine());
            }
            System.out.println();
            System.out.println("获取信息完毕~");

        }catch (Exception e){
            e.printStackTrace();
        }
    }

相关文章

网友评论

      本文标题:Socket的使用回顾

      本文链接:https://www.haomeiwen.com/subject/tvnjsltx.html