1.
socket 通信原理:
基于TCP的socket通信。
2.多线程的优先级。
while(true){
socket = serverSocket.accept();
//创建一个新线程
ServerThread serverThread=new ServerThread(socket);
//未设置优先级,可能导致运行时速度非常慢,可降低优先级。
serverThread.setPriority(4);//设置线程的优先级,范围(1,10);默认为5
serverThread.start();//启动线程.
count++;//统计客户端数量
System.out.println("客户端数量:"+count);
InetAddress address=socket.getInetAddress();
System.out.println("当前客户端IP:"+address.getHostAddress());
}
3.是否关闭输出输入流
对于同一个socket,如果关闭了输出流。则与该输出流关联的socket也会被关闭,所以一般不用关闭流,直接关闭socket。
4.使用TCP传输对象。
//创建客户端Socket,指定服务器地址和端口号
Socket sk=new Socket("localhost", 8888);
//获取输出流,向服务器发送信息
OutputStream os=sk.getOutputStream();//字节输出流
//使用对象序列化流
ObjectOutputStream oos=new ObjectOutputStream(os);
User user=new User("admin",123);
oos.writeObject(user);//序列化
sk.shutdownOutput();//关闭输出流