Java 服务端和客户端的通信
发布网友
发布时间:2022-04-19 23:43
我来回答
共2个回答
热心网友
时间:2023-07-03 15:03
有两种方法:
客户端和服务端创建两个连接,一个连接用于发消息,一个连接用于发文件。
客户端和服务端使用同一个连接,数据不要直接发出去,按照一定的格式制订一个协议,数据一块一块的发,每块前面加上块类型和长度,类型表明发送的是消息数据还是文件数据。
热心网友
时间:2023-07-03 15:03
//客户端
package 通讯;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.OutputStream;
import java.io.OutputStreamWriter;
import java.io.PrintStream;
import java.net.Socket;
import java.util.Scanner;
public class client {
public static void main(String[] args) {
try {
Socket socket = new Socket("127.0.0.1", 8885);
while (true) { //死循环重复步骤
OutputStream os = socket.getOutputStream();
PrintStream bw = new PrintStream(os);
Scanner input = new Scanner(System.in);
System.out.println("你想对对面的服务器说些什么");
bw.print(input.next());//从键盘输入读取一行 打印到输出流
bw.flush();
socket.shutdownOutput();
InputStream is = socket.getInputStream();
InputStreamReader isr = new InputStreamReader(is);
BufferedReader br = new BufferedReader(isr);
String s;
while ((s = br.readLine()) != null) {
System.out.println("服务器端说:" + s);
}
socket.shutdownInput();
br.close();
isr.close();
is.close();
bw.close();
os.close();
}
} catch (IOException e) {
e.printStackTrace();