色婷婷狠狠18禁久久YY,CHINESE性内射高清国产,国产女人18毛片水真多1,国产AV在线观看

java的ssh和sse

陳怡靜1年前6瀏覽0評論

Java 是一門廣泛使用的編程語言,可以創建各種類型的應用程序,包括 Web 應用程序和移動應用程序。在 Java 的開發過程中,經常會用到 SSH 和 SSE。下面將對這兩個工具進行簡要介紹。

SSH是指 Secure Shell,它是一個安全協議,用于在客戶機和服務器之間傳輸數據。在 Java 中,SSH 主要用于遠程連接和執行命令。通過 SSH,可以在遠程服務器上執行命令,正常情況下,用戶必須使用用戶名和密碼來登錄服務器,但也可以使用公鑰身份驗證。

// 使用 JSch 進行 SSH 連接
JSch jsch = new JSch();
Session session = jsch.getSession("用戶名", "遠程ip地址", 22);
session.setPassword("密碼");
Properties properties = new Properties();
properties.put("StrictHostKeyChecking", "no");
session.setConfig(properties);
session.connect();
Channel channel = session.openChannel("exec");
((ChannelExec) channel).setCommand("ls -lrt");
channel.connect();
InputStream in = channel.getInputStream();
byte[] tmp = new byte[1024];
while (true) {
while (in.available() >0) {
int i = in.read(tmp, 0, 1024);
if (i< 0) {
break;
}
System.out.print(new String(tmp, 0, i));
}
if (channel.isClosed()) {
System.out.println("exit-status: " + channel.getExitStatus());
break;
}
try {
Thread.sleep(1000);
} catch (InterruptedException ignored) {}
}
channel.disconnect();
session.disconnect();

SSE是指 Server-Sent Events,它是一種基于 HTTP 的協議,允許 Web 應用程序通過單向連接從服務器獲取數據。在 Java 中,SSE 主要用于在 Web 應用程序中推送事件通知。

// 發送 SSE 消息
public void sendSseMsg() {
try {
HttpServletResponse response = (HttpServletResponse) FacesContext.getCurrentInstance().getExternalContext().getResponse();
response.setContentType("text/event-stream");
response.setCharacterEncoding("UTF-8");
PrintWriter writer = response.getWriter();
Event event = new Event("{\"name\":\"SSE test\"}");
String lastEventId = "0";
writer.write("id: " + lastEventId + "\n");
writer.write("event: " + event.getName() + "\n");
writer.write("retry: 3000\n");
writer.write("data: " + event.getData() + "\n\n");
writer.flush();
response.flushBuffer();
} catch (IOException e) {
e.printStackTrace();
}
}
// 接收 SSE 消息
var source = new EventSource('/push');
source.addEventListener('eventName', function(event) {
console.log('Event received:', event.data);
});

以上是對 Java 中的 SSH 和 SSE 兩個工具的簡要介紹,它們都具有廣泛的應用場景,在實際的開發過程中可以根據需求選擇合適的工具。