首页 > 解决方案 > Socket java 向服务器传输一个位串。StringBuilder 转移

问题描述

我有一个任务。通过套接字,传递变量输出。

            String hex = "1040014116";
            StringBuilder output = new StringBuilder();
            for (int i = 0; i < hex.length(); i+=2) {
            String str = hex.substring(i, i+2);
            output.append((char)Integer.parseInt(str, 16));
             }
             System.out.println(output);

输出格式为“0x10..”

他需要一个网络服务器来传输这些数据并作为回报接收其他数据。

        int serverPort = 2003; 
        String address = "xx.xx.xx.xx"; 


        try {
            InetAddress ipAddress = InetAddress.getByName(address); 
            System.out.println(" IP address " + address + " and port " + serverPort);
            Socket socket = new Socket(ipAddress, serverPort); 
            System.out.println("Socket ready");


            InputStream sin = socket.getInputStream();
            OutputStream sout = socket.getOutputStream();


            DataInputStream in = new DataInputStream(sin);
            DataOutputStream out = new DataOutputStream(sout);


            BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));
            String line = null;

            System.out.println("Введите данные и нажмите 'Ввод'");
            System.out.println();

            while (true) {
                line = reader.readLine(); 
                System.out.println("Отправка на сервер");
                out.writeUTF(line);// отправка текста
                System.out.println("Отправка: : " + line);
                out.flush(); // конец передачи
                line = in.readUTF(); // возврат текста от сервера
                System.out.println("Сервер: : " + line);
                System.out.println("Введите новую строку");
                System.out.println();
            }
        } catch (Exception x) {
            x.printStackTrace();
        } 
    } 

如何传递位串并从服务器获取位串作为响应。

标签: javasocketstcp

解决方案


你需要在客户端和服务器端编码

服务器代码

ServerSocket sskt=new ServerSocket(port);
Socket =sskt.accept()
InputStream is=skt.getInputStream();
OutputStream os=skt.getOutputStream();

客户代码

Socket skt=new Socket(server_ip,port);

建立连接后,使用相同的输入流和输出流进行读写

希望这可以帮助


推荐阅读