server1.java

来自「JAVA的一些基础教程」· Java 代码 · 共 58 行

JAVA
58
字号
import java.io.*;
import java.net.*;

class Person{
	int 年龄;
	boolean 性别;
	String 姓名;
	
	public Person(String name,int age, boolean gender){
		年龄= age;
		性别 = gender;
		姓名 = name;
	}

	public String toString(){
		return "Person:"+姓名 + " 今年 " + 年龄 ;
	}

}

class Server1{
	//先读取一个字符串,然后再读四个字节的整数,最后是布耳类型
	public static void 解析数据(byte bytes[]) throws Exception{
		ByteArrayInputStream bis = new ByteArrayInputStream(bytes);
		DataInputStream dis = new DataInputStream(bis);
		String 姓名 = dis.readUTF();
		int 年龄 = dis.readInt();
		boolean 性别 =dis.readBoolean();
		Person person = new Person(姓名,年龄,性别);
		System.out.println("服务器收到一个Person对象" + person + "\n");
	}

	public static void main(String arg[]) throws Exception{
		ServerSocket 服务端 = new ServerSocket(2000);
		System.out.println("监听本机器的2000端口");
		Socket 客户端 ;
		客户端 = 服务端.accept();
		System.out.println("一个客户端程序连上来了");

		InputStream in = 客户端.getInputStream();
		OutputStream out = 客户端.getOutputStream();
		
		int 数据长度;
		//先读取一个字节的数据作为后面数据的长度
		while((数据长度 = in.read()) != -1){
			byte 数据体[] = new byte[数据长度];
			System.out.println("这个对象的数据长度:" + 数据长度);
			System.out.println("再读取:" + 数据长度+ "字节的数据");
			in.read(数据体);
			解析数据(数据体);

		}
		in.close();
		out.close();
		客户端.close();
	}
}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?