0%

Send.java

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
public class Send {
public static String EXCHANGE_NAME = "test_exchange_direct";

public static void main(String[] args) throws IOException, TimeoutException {
ConnectionFactory factory = new ConnectionFactory();
factory.setHost("localhost");
factory.setVirtualHost("/zhang");
factory.setUsername("zhang");
factory.setPassword("zhang");
Connection connection = factory.newConnection();
Channel channel = connection.createChannel();
channel.exchangeDeclare(EXCHANGE_NAME, "direct");
String message = "message";
channel.basicPublish(EXCHANGE_NAME, "insert", null, message.getBytes());
channel.close();
connection.close();
}
}
阅读全文 »

Send.java

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
public class Send {
public static String EXCHANGE_NAME = "test_exchange_fanout";

public static void main(String[] args) throws IOException, TimeoutException {
ConnectionFactory factory = new ConnectionFactory();
factory.setHost("localhost");
factory.setVirtualHost("/zhang");
factory.setUsername("zhang");
factory.setPassword("zhang");
Connection connection = factory.newConnection();
Channel channel = connection.createChannel();
channel.exchangeDeclare(EXCHANGE_NAME, "fanout");
String message = "message";
channel.basicPublish(EXCHANGE_NAME, "", null, message.getBytes());
channel.close();
connection.close();
}
}
阅读全文 »

Server.java

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
public class Server {
public static void main(String[] args) throws IOException {
ServerSocket serverSocket = new ServerSocket(8081);
while (true) {
Socket socket = serverSocket.accept();
new Thread(new Runnable() {
@Override
public void run() {
try {
BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(socket.getInputStream()));
String str = "";
while ((str = bufferedReader.readLine()) != null) {
if (str.equals("1")) {
Thread.sleep(5 * 1000);
}
System.out.println(str);
}
} catch (IOException | InterruptedException e) {
e.printStackTrace();
}
}
}).start();
}
}
}

Client.java

1
2
3
4
5
6
7
8
9
10
11
12
13
public class Client {
public static void main(String[] args) throws IOException {
Socket socket = new Socket("localhost", 8081);
BufferedWriter bufferedWriter = new BufferedWriter(new OutputStreamWriter(socket.getOutputStream()));
BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(System.in, "UTF-8"));
while (true) {
String str = bufferedReader.readLine();
bufferedWriter.write(str);
bufferedWriter.write("\n");
bufferedWriter.flush();
}
}
}

Java Socket源码地址​github.com


Send.java

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
public class Send {
public static String QUEUE_NAME = "test_queue";

public static void main(String[] args) throws IOException, TimeoutException {
ConnectionFactory factory = new ConnectionFactory();
factory.setHost("localhost");
factory.setVirtualHost("/zhang");
factory.setUsername("zhang");
factory.setPassword("zhang");
Connection connection = factory.newConnection();
Channel channel = connection.createChannel();
channel.queueDeclare(
QUEUE_NAME, false, false,
false, null
);
for (int i = 0; i < 50; i++) {
String message = "message:\t" + i;
channel.basicPublish("", QUEUE_NAME, null, message.getBytes());
System.out.println(message);
try {
Thread.sleep(i * 10);
} catch (InterruptedException e) {
e.printStackTrace();
}
}
channel.close();
connection.close();
}
}
阅读全文 »

Send.java

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
public class Send {
public static String QUEUE_NAME = "test_queue";

public static void main(String[] args) throws IOException, TimeoutException {
ConnectionFactory factory = new ConnectionFactory();
factory.setHost("localhost");
factory.setVirtualHost("/zhang");
factory.setUsername("zhang");
factory.setPassword("zhang");
Connection connection = factory.newConnection();
Channel channel = connection.createChannel();
channel.queueDeclare(
QUEUE_NAME, false, false,
false, null
);
String message = "message";
channel.basicPublish("", QUEUE_NAME, null, message.getBytes());
channel.close();
connection.close();
}
}
阅读全文 »

1
2
3
4
5
6
7
8
9
10
11
server {
listen 80;
listen 443 ssl;
server_name localhost;
ssl_certificate /SSLPATH/zhang.crt;
ssl_certificate_key /SSLPATH/zhang.key;
location / {
# TOMCAT
proxy_pass http://localhost:5566;
}
}

OPENSSL 自签证书

1.(.key)文件

通常指私钥。

openssl genrsa -des3 -out zhang.key 1024

2.(.csr)文件

csr 是Certificate Signing Request的缩写,即证书签名请求,这不是证书,可以简单理解成公钥,生成证书时要把这个提交给权威的证书颁发机构。

openssl req -new -key zhang.key -out zhang.csr

阅读全文 »

1.HTTP 应用层协议

超文本传输协议(HTTP,HyperText Transfer Protocol)是互联网上应用最为广泛的一种网络协议。

2.SSL/TLS 会话层协议

SSL:(Secure Socket Layer,安全套接字层),位于可靠的面向连接的网络层协议和应用层协议之间的一种协议层。SSL通过互相认证、使用数字签名确保完整性、使用加密确保私密性,以实现客户端和服务器之间的安全通讯。该协议由两层组成:SSL记录协议和SSL握手协议。

阅读全文 »

1.Cookie简介

Cookie 是在 HTTP 协议下,服务器或脚本可以维护客户工作站上信息的一种方式。Cookie 是由 Web 服务器保存在用户浏览器(客户端)上的小文本文件,它可以包含有关用户的信息。无论何时用户链接到服务器,Web 站点都可以访问 Cookie 信息。

目前有些 Cookie 是临时的,有些则是持续的。临时的 Cookie 只在浏览器上保存一段规定的时间,一旦超过规定的时间,该 Cookie 就会被系统清除。

持续的 Cookie 则保存在用户的 Cookie 文件中,下一次用户返回时,仍然可以对它进行调用。在 Cookie 文件中保存 Cookie,有些用户担心 Cookie 中的用户信息被一些别有用心的人窃取,而造成一定的损害。其实,网站以外的用户无法跨过网站来获得 Cookie 信息。如果因为这种担心而屏蔽 Cookie,肯定会因此拒绝访问许多站点页面。因为,当今有许多 Web 站点开发人员使用 Cookie 技术,例如 Session 对象的使用就离不开 Cookie 的支持。

阅读全文 »

广义:就是不渉及具体概念,只是一个框架,其有确定的抽象概念,但没有确定的形象概念。
狭义:就是在系统中设定或区分某一相对狭窄的、片面的、局部的点、面、区域、系统,主要指某一物质系统中具有特殊的、有别于一般的、非普遍的部分。相对广义而言。
广义包含狭义,例如:狭义上咱俩都是人,广义上咱俩都是动物。