• java网络编程之socket


    基于tcp双向传输,socket编程共用信息流来接收和发送数据。

    重点在于理解对不同端来说,输入与输出流的关系。对客户端来说,服务端的输出是客户端的输入。

    对服务端来说,客户端的输出是服务端的输入。

    import java.io.*;
    import java.net.*;
    
    public class Client {
     
       public static void main(String args[]) throws Exception {
        
          
           //为了简单起见,所有的异常都直接往外抛
           String host = "127.0.0.1";  //要连接的服务端IP地址
           int port = 8899;   //要连接的服务端对应的监听端口
           //与服务端建立连接
           Socket client = new Socket(host, port);
           //建立连接后就可以往服务端写数据了
           BufferedReader is = new BufferedReader(new InputStreamReader(client.getInputStream()));
           
           BufferedReader sin = new BufferedReader(new InputStreamReader(System.in));
           
           
           PrintWriter os = new PrintWriter(client.getOutputStream());
           
           String s;
           s = sin.readLine();
           os.println(s);
           os.flush();
           System.out.println("Server:"+is.readLine());
           
           
           
           os.close();
           is.close();
           client.close();
       }
       
    }
     1 import java.io.*;
     2 import java.net.*;
     3 
     4 public class Server {
     5  
     6    public static void main(String args[]) throws IOException {
     7        //端口
     8        int port = 8899;
     9        //建立服务端socket
    10        ServerSocket server = new ServerSocket(port);
    11        Socket socket = server.accept();
    12        
    13        BufferedReader is = new BufferedReader(new InputStreamReader(socket.getInputStream()));
    14        
    15        PrintWriter os = new PrintWriter(socket.getOutputStream());
    16        
    17        BufferedReader sin = new BufferedReader(new InputStreamReader(System.in));
    18        
    19        String s = is.readLine();
    20        //获取客户端的输入流
    21        System.out.println("client:"+s);
    22        if(s.equals("hello")){
    23            os.println("你好");
    24            os.flush();
    25        }else{
    26            System.out.println("bye");
    27        }
    28        
    29 
    30        is.close();
    31        os.close();
    32        socket.close();
    33        server.close();
    34    }
    35    
    36 }

      

  • 相关阅读:
    1.Math函数对象
    1.日期与时间
    使用object literal替换switch
    Array数组去重
    flexbox弹性布局
    web移动端一些常用知识
    解决网页ICON图标无法显示的问题
    观察者模式和发布订阅模式的区别
    JS延迟加载的几种方式
    前端 api 请求缓存方案
  • 原文地址:https://www.cnblogs.com/lovecc/p/4368116.html
Copyright © 2020-2023  润新知