java - 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();
}
}
如何传递位串并从服务器获取位串作为响应。
解决方案
你需要在客户端和服务器端编码
服务器代码
ServerSocket sskt=new ServerSocket(port);
Socket =sskt.accept()
InputStream is=skt.getInputStream();
OutputStream os=skt.getOutputStream();
客户代码
Socket skt=new Socket(server_ip,port);
建立连接后,使用相同的输入流和输出流进行读写
希望这可以帮助
推荐阅读
- java - 使用 Socks 的 Java JDBC 连接
- python - Plotly Python:在具有多个 Y 轴的分组条形图中对齐 X 轴
- regex - 如何在 AWK 中干净地处理/忽略(Unicode?)不可打印的二进制字符
- java - 设置自动保存计时器以在 java 中定期保存文件的最佳策略是什么(但不使用任何 javafx API)?
- html - 如何链接到父文件夹中的文件?
- javascript - 如何使用 redux 处理竞争条件
- php - Post 请求中数组的 PHP 代码 - 改造
- r - 删除最低数值
- javascript - Google Sheet API:“消息”:“请求缺少有效的 API 密钥。”
- html - 更改背景图像大小,但不更改背景颜色