Java開發(fā)實現(xiàn)的Socket雙向通信功能示例
本文實例講述了Java開發(fā)實現(xiàn)的Socket雙向通信功能。分享給大家供大家參考,具體如下:
服務(wù)端
import java.io.BufferedReader; import java.io.BufferedWriter; import java.io.IOException; import java.io.InputStreamReader; import java.io.OutputStreamWriter; import java.net.ServerSocket; import java.net.Socket; import java.util.Scanner; public class Server_1 { public static void main(String[] args) { InputStreamReader isr; BufferedReader br; OutputStreamWriter osw; BufferedWriter bw; String str; Scanner in = new Scanner(System.in); try { ServerSocket server = new ServerSocket(4444);// 在本機的4444端口開放Server Socket socket = server.accept();// 只要產(chǎn)生連接,socket便可以代表所連接的那個物體,同時這個server.accept()只有產(chǎn)生了連接才會進行下一步操作。 System.out.println(socket.getInetAddress());// 輸出連接者的IP。 System.out.println("建立了一個連接!"); while (true) { isr = new InputStreamReader(socket.getInputStream()); br = new BufferedReader(isr); System.out.println(socket.getInetAddress() + ":" + br.readLine()); osw = new OutputStreamWriter(socket.getOutputStream()); bw = new BufferedWriter(osw); System.out.print("回復(fù):"); str = in.nextLine(); bw.write(str + "\n"); bw.flush(); } } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } } }
客服端
import java.io.BufferedReader; import java.io.BufferedWriter; import java.io.IOException; import java.io.InputStreamReader; import java.io.OutputStreamWriter; import java.net.ServerSocket; import java.net.Socket; import java.util.Scanner; public class Client_1 { public static void main(String[] args) { InputStreamReader isr; BufferedReader br; OutputStreamWriter osw; BufferedWriter bw; String str; Scanner in = new Scanner(System.in); try { Socket socket = new Socket("localhost", 4444); // System.out.println(socket.getInetAddress());// 輸出連接者的IP。 System.out.println("成功連接服務(wù)器"); while (true) { osw = new OutputStreamWriter(socket.getOutputStream()); bw = new BufferedWriter(osw); System.out.print("回復(fù):"); str = in.nextLine(); bw.write(str + "\n"); bw.flush(); isr = new InputStreamReader(socket.getInputStream()); br = new BufferedReader(isr); System.out.println(socket.getInetAddress() + ":" + br.readLine()); } } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } } }
更多關(guān)于java相關(guān)內(nèi)容感興趣的讀者可查看本站專題:《Java Socket編程技巧總結(jié)》、《Java文件與目錄操作技巧匯總》、《Java數(shù)據(jù)結(jié)構(gòu)與算法教程》、《Java操作DOM節(jié)點技巧總結(jié)》和《Java緩存操作技巧匯總》
希望本文所述對大家java程序設(shè)計有所幫助。
相關(guān)文章
Spring Boot自定義Banner實現(xiàn)代碼
這篇文章主要介紹了Spring Boot自定義Banner實現(xiàn)代碼,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下2020-01-01spring AOP代理執(zhí)行@EnableAspectJAutoProxy的exposeProxy屬性詳解
這篇文章主要為大家介紹了spring AOP代理執(zhí)行@EnableAspectJAutoProxy的exposeProxy屬性詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪2023-09-09Sentinel Dashboard限流規(guī)則保存方式
這篇文章主要介紹了Sentinel Dashboard限流規(guī)則保存方式,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2021-06-06