網路程式設計--簡單的客戶端與服務端連線
阿新 • • 發佈:2021-12-02
package socket; import java.io.IOException; import java.io.OutputStream; import java.net.InetAddress; import java.net.Socket; import java.net.UnknownHostException; /** * Copyright (C), 2018-2021, Mr.Lin * Author: Mr.Lin * Date: 2021/12/1 21:46 * FileName: SocketAPI01Client * Description: 客戶端 */ publicclass SocketAPI01Client { public static void main(String[] args) throws IOException { //連線本機的埠,如果連線成功則返回socket物件 Socket socket = new Socket(InetAddress.getLocalHost(),6666); System.out.println("返回socket="+socket); //連線上後通過socket.getOutputStream()得到和socket 物件關聯的輸出流物件 OutputStream os = socket.getOutputStream(); os.write("hello.server".getBytes()); os.close(); socket.close(); System.out.println("客戶端退出。。。。"); } }
package socket; import java.io.IOException; import java.io.InputStream; import java.net.ServerSocket; import java.net.Socket; /** * Copyright (C), 2018-2021, Mr.Lin * Author: Mr.Lin * Date: 2021/12/1 21:38 * FileName: SocketAPI01Server * Description:伺服器端*/ public class SocketAPI01Server { public static void main(String[] args) throws IOException { //在本機的6666埠監聽,等待連線 //要求在本機沒有其他服務佔用6666埠 ServerSocket serverSocket = new ServerSocket(6666); System.out.println("埠6666等待連線。。。"); //當客戶端連線則返回socket物件 Socket socket = serverSocket.accept(); System.out.println("物件已連線。。。"); //通過 socket.getInputStream()讀取客戶端寫入到 資料通道的資料 InputStream is = socket.getInputStream(); //IO讀取 byte [] bytes=new byte[1024]; int readLen=0; while ((readLen=is.read(bytes)) !=-1){ System.out.println(new String(bytes,0,readLen)); } is.close(); socket.close(); serverSocket.close(); } }