PKI學習之路(一)------------------------java實現簡單的socket通訊
阿新 • • 發佈:2018-11-30
專案地址:https://github.com/gongxianshengjiadexiaohuihui/PKI
關於什麼是socket通訊,我會寫一篇部落格去敘述
這次我們主要實現client和server通過socket進行通訊
server程式碼
package com.ggp.server; import java.io.*; import java.net.ServerSocket; import java.net.Socket; /** * @ClassName Server * @Description TODO * @Author Mr.G * @Date 2018/11/29 9:43 * @Version 1.0 */ public class Server extends Thread { private Socket socket; private ServerSocket serverSocket; public Server(int port)throws Exception{ serverSocket = new ServerSocket(port); } @Override public void run() { while (this.isAlive()) { try { socket = serverSocket.accept(); BufferedReader reader = new BufferedReader(new InputStreamReader(socket.getInputStream())); PrintWriter writer = new PrintWriter(socket.getOutputStream()); String data = reader.readLine(); writer.println(data); writer.close(); socket.close(); } catch (IOException e) { } } } public static void main(String[] args) throws Exception{ new Server(28888).start(); } }
開闢一條執行緒初始化serversocket,並監聽28888埠
socket = serverSocket.accept();
這句程式碼是阻塞的,只有監聽到客戶端發來的訊息,才會執行下面的程式碼
功能:
接受客戶端發來的資訊,並把資訊返回給客戶端
client程式碼
package com.ggp.client; import java.io.BufferedReader; import java.io.InputStreamReader; import java.io.PrintWriter; import java.net.Socket; /** * @ClassName Client * @Description TODO * @Author Mr.G * @Date 2018/11/29 9:55 * @Version 1.0 */ public class Client { public static void main(String[] args) throws Exception{ Socket socket = new Socket("127.0.0.1", 28888); PrintWriter writer = new PrintWriter(socket.getOutputStream()); BufferedReader reader = new BufferedReader(new InputStreamReader(socket.getInputStream())); writer.println("hello"); writer.flush(); System.out.println(reader.readLine()); socket.close(); } }
功能:
初始化一個socket ,配置 要傳送伺服器的地址和埠號
傳送內容,列印伺服器返回的內容
結果