>  기사  >  Java  >  Java 예제 - ServerSocket 및 소켓 통신 예제

Java 예제 - ServerSocket 및 소켓 통신 예제

黄舟
黄舟원래의
2017-01-21 10:54:261430검색

다음 예에서는 서버에 메시지를 보내는 클라이언트를 구현하는 방법을 보여줍니다. 서버는 메시지를 수신하고 출력을 읽은 다음 이를 클라이언트에 쓰고 클라이언트는 출력을 받습니다.

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)를 참고해주세요!


성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.