网络编程:
功能:
实现客户端和服务器之间的通信,客户端先发送消息,然后服务器接收后再发送一条消息,然后客户端接收再发一条,当客户端输入“Bye”时候结束通信
Server.java如下所示:
1 package bag1; 2 3 import java.io.BufferedReader; 4 import java.io.IOException; 5 import java.io.InputStreamReader; 6 import java.io.PrintWriter; 7 import java.net.ServerSocket; 8 import java.net.Socket; 9 import java.util.Scanner;10 11 public class Server {12 13 public static void main(String[] args) throws IOException {14 Socket s = null;15 Scanner sc = new Scanner(System.in);16 ServerSocket ss = new ServerSocket(8080);17 String str = null;18 s = ss.accept();19 System.out.println("链接成功!!");20 BufferedReader is = new BufferedReader(new InputStreamReader(s.getInputStream()));21 PrintWriter os = new PrintWriter(s.getOutputStream(), true);22 23 while(true){ 24 str = is.readLine();25 System.out.println("Client:" + str);26 if(str.equals("Bye")){27 s.close();28 break;29 }30 str = sc.nextLine();31 os.println(str);32 }33 }34 }
Client.java如下所示:
1 package bag1; 2 3 import java.io.BufferedReader; 4 import java.io.IOException; 5 import java.io.InputStreamReader; 6 import java.io.PrintWriter; 7 import java.net.InetSocketAddress; 8 import java.net.Socket; 9 import java.net.SocketAddress;10 import java.util.Scanner;11 12 public class Client {13 14 public static void main(String[] args) throws IOException {15 Socket s = new Socket();16 Scanner sc = new Scanner(System.in);17 String str = null;18 s.bind(null); // 随机指定端口19 SocketAddress ra = new InetSocketAddress("localhost", 8080);20 s.connect(ra, 60000);21 BufferedReader is = new BufferedReader(new InputStreamReader(s.getInputStream()));22 PrintWriter os = new PrintWriter(s.getOutputStream(),true);23 str = sc.nextLine();24 while(true){25 os.println(str);26 str = is.readLine();27 if(str.equals("Bye")){28 s.close();29 }30 //System.out.println("读取服务器端成功!!");31 System.out.println("Server:" + str);32 str = sc.nextLine();33 34 }35 }36 37 }