本文實(shí)例講述了Java開發(fā)實(shí)現(xiàn)的Socket雙向通信功能。分享給大家供大家參考,具體如下:
服務(wù)端
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
|
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 ); // 在本機(jī)的4444端口開放Server Socket socket = server.accept(); // 只要產(chǎn)生連接,socket便可以代表所連接的那個(gè)物體,同時(shí)這個(gè)server.accept()只有產(chǎn)生了連接才會(huì)進(jìn)行下一步操作。 System.out.println(socket.getInetAddress()); // 輸出連接者的IP。 System.out.println( "建立了一個(gè)連接!" ); 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(); } } } |
客服端
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
|
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(); } } } |
希望本文所述對(duì)大家java程序設(shè)計(jì)有所幫助。
原文鏈接:http://blog.csdn.net/qq_14949289/article/details/49272171