Java TCP编程(实现方式二)

实现的另一种方式:使用readUTF()和writeUTF()方法:


    我们讲的上一种方法时使用了read()方法和write()方法读取和写入内容,这两种方法使用的时默认的编码格式

    而使用readUTF()和writeUTF()方法是将内容转化为utf-8的编码格式

使用此种方法时,readUTF()和writeUTF()方法必须同时使用.即使用readUTF()读取数据,那么写入时就必须使用writeUTF()方法,否则就会报错

代码实现:

  • 客户端
    package javanetwork.day2.demo1;
    
    import java.io.DataInputStream;
    import java.io.DataOutputStream;
    import java.io.IOException;
    import java.net.Socket;
    
    import java.util.Scanner;
    
    public class Client {
    
        public static void main(String[] args) throws IOException {
    
            Socket socket = new Socket("192.168.43.149",9999);
            DataOutputStream dout = new DataOutputStream(socket.getOutputStream());
            DataInputStream din = new DataInputStream(socket.getInputStream());
            Scanner scanner = new Scanner(System.in);
    
            while (true){
                System.out.println("客户端输入:");
                String msg = scanner.next();
                dout.writeUTF(msg);
    
                System.out.println("服务器端说:"+din.readUTF());
            }
        }
    }
  • 服务器端
    package javanetwork.day2.demo1;
    
    import java.io.DataInputStream;
    import java.io.DataOutput;
    import java.io.DataOutputStream;
    import java.io.IOException;
    import java.net.ServerSocket;
    import java.net.Socket;
    import java.util.Scanner;
    
    
    public class Server {
    
        public static void main(String[] args) throws IOException {
    
            ServerSocket serverSocket = new ServerSocket(9999);
            Socket socket = serverSocket.accept();
            DataInputStream din = new DataInputStream(socket.getInputStream());
            DataOutputStream dout = new DataOutputStream(socket.getOutputStream());
            Scanner scanner = new Scanner(System.in);
            while(true){
                String msg = din.readUTF();
                System.out.println("客户端说"+msg);
                System.out.println("服务器端输入:");
                String msg1 = scanner.next();
                dout.writeUTF(msg1);
            }
        }
    }
    

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

不会写代码的菜

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值