面试题总结
其它面试题(springboot、mybatis、并发、java中高级面试总结等)
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
@Override
public void run() {
// TODO Auto-generated method stub
//Io流
//输入流 接受客户端的请求
while( runing ) {
//收到请求
String msg = receive();
//反馈结果
if( !msg.equals(“”))
sendothers(msg,false);
else
runing = false;
}
//释放资源
release();
}
}
}
2.客户端
package com.wyj.talkhome;
/**
-
实现多用户可以接发多条消息
*/
import java.io.BufferedReader;
import java.io.DataInputStream;
import java.io.DataOutputStream;
import java.io.IOException;
import java.io.InputStreamReader;
import java.net.Socket;
import java.net.UnknownHostException;
public class Demo5_客户端私聊版 {
public static void main(String[] args) throws UnknownHostException, IOException {
// TODO Auto-generated method stub
System.out.println(“—client—”);
BufferedReader brr = new BufferedReader( new InputStreamReader(System.in));
System.out.print(“请输入你在群聊中的名称:”);
String name = brr.readLine();
//使用Socket创建客户端并指定IP和端口号
Socket client = new Socket(“localhost”,7777);
new Thread(new Demo4_客户端send(client,name)).start();
new Thread(new Demo4_客户端receive(client)).start();
}
}
3:客户端实现发送消息给服务端
package com.wyj.talkhome;
import java.io.BufferedReader;
import java.io.DataInputStream;
import java.io.DataOutputStream;
import java.io.IOException;
import java.io.InputStreamReader;
import java.net.Socket;
public class Demo4_客户端send implements Runnable{
private Socket client;
private DataOutputStream dos;
private DataInputStream dis;
private BufferedReader br;
private boolean runing = true;
private String name;
public Demo4_客户端send( Socket client ,String name) {
this.client = client;
this.name = name;
br = new BufferedReader(new InputStreamReader(System.in));
try {
dos = new DataOutputStream(client.getOutputStream());
send(this.name);//建立好通道 直接发送名字
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
this.release();
}
}
//释放资源
private void release() {
try {
if( dos != null )
dos.close();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
try {
if( dis != null )
dis.close();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
try {
if( client != null )
client.close();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
//从控制台获取信息
private String fromconsole() {
try {
return br.readLine();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
this.release();
}
return “”;
}
//向服务端发送信息
private void send( String msg) {
try {
dos.writeUTF(msg);
dos.flush();
} catch (IOException e) {
// TODO Auto-generated catch block
//e.printStackTrace();
this.runing = false;
this.release();
}
}
public void run() {
// TODO Auto-generated method stub
while(runing) {
String msg = fromconsole();
if( !msg.equals(“”)) {
send(msg);
}
}
}
}
4.客户端接受消息从服务端
package com.wyj.talkhome;
import java.io.DataInputStream;
import java.io.IOException;
import java.net.Socket;
public class Demo4_客户端receive implements Runnable{
private DataInputStream dis;
private Socket client;
boolean runing = true;
public Demo4_客户端receive(Socket client) {
try {
dis = new DataInputStream(client.getInputStream());
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
this.release();
}
}
private String receive() {
String msg = “”;
try {
if (msg != null )
msg = dis.readUTF();
} catch (IOException e) {
// TODO Auto-generated catch block
// e.printStackTrace();
release();
}
return msg;
}
//释放资源
private void release() {
try {
if( dis != null )
dis.close();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
try {
if( client != null )
client.close();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
@Override
public void run() {
// TODO Auto-generated method stub
while( runing ) {
//收到反馈结果
最后总结
ActiveMQ+Kafka+RabbitMQ学习笔记PDF
关于分布式,限流+缓存+缓存,这三大技术(包含:ZooKeeper+Nginx+MongoDB+memcached+Redis+ActiveMQ+Kafka+RabbitMQ)等等。这些相关的面试也好,还有手写以及学习的笔记PDF,都是啃透分布式技术必不可少的宝藏。以上的每一个专题每一个小分类都有相关的介绍,并且小编也已经将其整理成PDF啦
60)]
[外链图片转存中…(img-bj6R4Xtv-1715638983960)]
[外链图片转存中…(img-7gWTpPUf-1715638983960)]
关于分布式,限流+缓存+缓存,这三大技术(包含:ZooKeeper+Nginx+MongoDB+memcached+Redis+ActiveMQ+Kafka+RabbitMQ)等等。这些相关的面试也好,还有手写以及学习的笔记PDF,都是啃透分布式技术必不可少的宝藏。以上的每一个专题每一个小分类都有相关的介绍,并且小编也已经将其整理成PDF啦