다음 예에서는 서버에 메시지를 보내는 클라이언트를 구현하는 방법을 보여줍니다. 서버는 메시지를 수신하고 출력을 읽은 다음 이를 클라이언트에 쓰고 클라이언트는 출력을 받습니다.
1. 서버 구축
서버가 ServerSocket 통신을 구축
서버가 클라이언트 연결을 받기 위해 Socket을 구축
클라이언트가 보낸 데이터를 읽기 위한 IO 입력 스트림 설정
클라이언트에 데이터 메시지를 보내기 위한 IO 출력 스트림 설정
서버 측 코드:
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;public class Server { public static void main(String[] args) { try { ServerSocket ss = new ServerSocket(8888); System.out.println("启动服务器...."); Socket s = ss.accept(); System.out.println("客户端:"+s.getInetAddress().getLocalHost()+"已连接到服务器"); BufferedReader br = new BufferedReader(new InputStreamReader(s.getInputStream())); //读取客户端发送来的消息 String mess = br.readLine(); System.out.println("客户端:"+mess); BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(s.getOutputStream())); bw.write(mess+"\n"); bw.flush(); } catch (IOException e) { e.printStackTrace(); } }}
위 코드를 실행한 결과는 다음과 같습니다.
启动服务器....
2. 클라이언트 설정
소켓 통신 생성 및 서버의 통신 IP 및 포트 설정
IO 출력 스트림을 설정하여 서버에 데이터 메시지 전송
서버에서 보낸 데이터 메시지를 읽기 위한 IO 입력 스트림 설정
클라이언트 코드:
/* author by w3cschool.cc Main.java */import java.io.BufferedReader;import java.io.BufferedWriter;import java.io.IOException;import java.io.InputStream; import java.io.InputStreamReader;import java.io.OutputStream; import java.io.OutputStreamWriter;import java.net.Socket; import java.net.UnknownHostException;public class Client { public static void main(String[] args) { try { Socket s = new Socket("127.0.0.1",8888); //构建IO InputStream is = s.getInputStream(); OutputStream os = s.getOutputStream(); BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(os)); //向服务器端发送一条消息 bw.write("测试客户端和服务器通信,服务器接收到消息返回到客户端\n"); bw.flush(); //读取服务器返回的消息 BufferedReader br = new BufferedReader(new InputStreamReader(is)); String mess = br.readLine(); System.out.println("服务器:"+mess); } catch (UnknownHostException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } }}
위 코드 실행의 출력 결과는 다음과 같습니다. :
服务器:测试客户端和服务器通信,服务器接收到消息返回到客户端
위 내용은 Java 인스턴스-ServerSocket 및 Socket 통신 인스턴스 내용입니다. 더 많은 관련 내용은 PHP 중국어 홈페이지(www.php.cn)를 참고해주세요!