本文實例講述了Java開發實現的Socket雙向通信功能。分享給大家供大家參考,具體如下:
服務端
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();// 只要產生連接,socket便可以代表所連接的那個物體,同時這個server.accept()只有產生了連接才會進行下一步操作。 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("回復:"); 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("成功連接服務器"); while (true) { osw = new OutputStreamWriter(socket.getOutputStream()); bw = new BufferedWriter(osw); System.out.print("回復:"); 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(); } }}
希望本文所述對大家java程序設計有所幫助。
新聞熱點
疑難解答
圖片精選