Java 中的socket

Java 中的socket

温故一下
看一眼socket 怎么传输的即可

最开始的服务端和客户端

//    持续监听的服务器 这个可以监听多次
    @Test
    public void serv2(){
        try(ServerSocket server = new ServerSocket(8080)){    //将服务端创建在端口8080上
            System.out.println("正在等待客户端连接...");
            while (true){   //无限循环等待客户端连接
                Socket socket = server.accept();
                System.out.println("客户端已连接,IP地址为:"+socket.getInetAddress().getHostAddress());
            }
        }catch (IOException e){
            e.printStackTrace();
        }
    }
//    客户端
    @Test
    public void clie1() {
        try (Socket socket = new Socket("localhost", 8080)){
            System.out.println("已连接到服务端!");
        }catch (IOException e){
            System.out.println("服务端连接失败!");
            e.printStackTrace();
        }
    }

可以传输文件的服务端和客户端

//    可以互动的服务器
@Test
public void serv3() {
        try(ServerSocket server = new ServerSocket(8080)){    //将服务端创建在端口8080上
        System.out.println("正在等待客户端连接...");
        Socket socket = server.accept();
        System.out.println("客户端已连接,IP地址为:"+socket.getInetAddress().getHostAddress());
        BufferedReader reader = new BufferedReader(new InputStreamReader(socket.getInputStream()));  //通过
        System.out.print("接收到客户端数据:");
        System.out.println(reader.readLine());
        OutputStreamWriter writer = new OutputStreamWriter(socket.getOutputStream());
        writer.write("已收到!");
        writer.flush();
        }catch (IOException e){
        e.printStackTrace();
        }
//    可以互动的客户端
 @Test
    public void clie2(){
        try (Socket socket = new Socket("localhost", 8080);
             Scanner scanner = new Scanner(System.in)){
            System.out.println("已连接到服务端!");
            OutputStream stream = socket.getOutputStream();
            OutputStreamWriter writer = new OutputStreamWriter(stream);  //通过转换流来帮助我们快速写入内容
            System.out.println("请输入要发送给服务端的内容:");
            String text = scanner.nextLine();
            writer.write(text+'\n');   //因为对方是readLine()这里加个换行符
            writer.flush();
            System.out.println("数据已发送:"+text);
            BufferedReader reader = new BufferedReader(new InputStreamReader(socket.getInputStream()));
            System.out.println("收到服务器返回:"+reader.readLine());
        }catch (IOException e){
            System.out.println("服务端连接失败!");
            e.printStackTrace();
        }finally {
            System.out.println("客户端断开连接!");
        }
    }

关闭流

socket.shutdownOutput();  //关闭输出方向的流
socket.shutdownInput();  //关闭输入方向的流

TCP连接

在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值