美文网首页
Java网络编程之Socket以及解决在cmd输出中文乱码问题

Java网络编程之Socket以及解决在cmd输出中文乱码问题

作者: 伪装的狼 | 来源:发表于2020-06-26 17:55 被阅读0次

在Tcp编程模型中,Echo程序模型的基本思想在于,客户端通过键盘输入一个信息,把此信息发送给服务器端后,服务器端会将此信息反馈给客户端进行显示,主要是使用到java.net包下的两个类,Socket和ServerSocket。

代码:
public static void main(String[] args) throws IOException {

    //服务端
    ServerSocket server = new ServerSocket(8000);

    //客户端
    Socket client = server.accept();

    //客户端输出流
    PrintStream print = new PrintStream(client.getOutputStream());

    print.write(getString("连接成功啦!"));    //输出
    print.println();

    boolean flag = true;
    while (flag){

        BufferedReader br = new BufferedReader(new InputStreamReader(client.getInputStream(),"GBK"));

//读取进来的字符转换成“GBK”格式的buffer

        String str = br.readLine();

        if ("exit".equalsIgnoreCase(str)){

            flag = false;

            print.println();
            print.write(getString("退出连接!"));
        }else {

            print.write(getString("你输入了:" + str));
            print.println();

        }


        br.close();
        print.close();
        client.close();
        server.close();

    }

}

public static byte[] getString(String str) throws UnsupportedEncodingException {
return str.getBytes("GBK");
}

//把字符串转换成“GBK”格式,IDE默认格式是“UTF-8”,而window的cmd输出默认格式是“GBK”,所以必须转换格式,不然乱码。

另外:
telnet localhost 8000
cmdl连接启动的服务端代码。

相关文章

网友评论

      本文标题:Java网络编程之Socket以及解决在cmd输出中文乱码问题

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