serverMain
package com.cy.java.net;
import java.io.IOException;
import java.net.ServerSocket;
import java.net.Socket;
public class serverMain {
public static void main(String[] args) throws IOException {
//開啟監聽,設定監聽埠號9999
ServerSocket serverSocket = new ServerSocket(9999);
System.out.println("開啟監聽");
while (true){ //不斷等待客戶的連接
//接受到客戶端請求時會向下執行
Socket accept = serverSocket.accept();
System.out.println("監聽到client");
//通過流讀取客戶端發來的請求
ObjectInputStream objectInputStream = new ObjectInputStream(socket.getInputStream());
System.out.println("client say:"+objectInputStream.readUTF());
}
}
}
TCP服務器端依次呼叫socket()、bind()、listen()之后,就會監聽指定的socket地址了,
TCP服務器監聽到請求之后,就會呼叫accept()函式取接收請求,這樣連接就建立好了,之后就可以開始網路I/O操作了,即類同于普通檔案的讀寫I/O操作,
clientMain
package com.cy.java.net;
import java.io.IOException;
import java.net.Socket;
public class client {
public static void main(String[] args) throws IOException {
//與埠為9999,ip為127.0.0.1(本地)的服務器建立連接
Socket socket = new Socket("127.0.0.1", 9999);
//通過寫入流對服務端傳輸資料
ObjectOutputStream objectOutputStream = new ObjectOutputStream(socket.getOutputStream());
objectOutputStream.writeUTF("hello server");
objectOutputStream.flush();
objectOutputStream.close();
}
}
TCP客戶端依次呼叫socket()、connect()之后就向TCP服務器發送了一個連接請求,
開啟服務器后,執行兩次客戶端請求,執行結果如下:

轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/278453.html
標籤:java
上一篇:Java中的鎖(深入理解AQS)
