[ Java ] 소켓통신 예제

2021. 10. 14. 10:58· Programing/JAVA
목차
  1. Server 쪽 소스코드
  2. client 쪽 소스코드
반응형
SMALL

소켓 통신을 공부하다가 잘 정리된 글을 발견하여 참조하기 위해서 공유합니다.

 

참조한 블로그 : https://m.blog.naver.com/highkrs/220840680504

 

[Java 강의91] 자바 소켓 통신

안녕하세요 모프 입니다. 이번엔 자바에서 TCP/IP 소켓 통신을 배워보려고 합니다. 강의를 하기 이전...

blog.naver.com

 

Server 쪽 소스코드

package socket.server;

import java.io.IOException;
import java.io.OutputStream;
import java.net.ServerSocket;
import java.net.Socket;

public class MainServer {
    public static void main(String[] args) {
        ServerSocket s_socket;
        try {
            // ServerSocket 클래스로 s_socket 객체 생성, 만들 서버의 포트넘버 8888
            s_socket = new ServerSocket(8888);
            // accept() 메소드 호출
            // accept() 는 클라이언트가 들어오는 것을 대기 하는 역할을 함.
            // 클라이언트가 해당 8888 포트로 연결을 시도한다면 accept 메소드는 대기를 풀고, 클라이언트와 연결시키는 Socket 클래스를 생성하여 반환.
            // c_socket 이 바로 클라이언트랑 1:1 연결된 소켓.
            Socket c_socket = s_socket.accept();

            System.out.println("c_socket : "+c_socket);
    
            // 클라이언트랑 연결된 소켓으로 부터 OuputStream 객체를 가져옴.
            // OutputStream 객체에 서버에서 전달할 메시지를 작성하여 전달하면 됌.
            OutputStream output_data = c_socket.getOutputStream();
    
            String sendDataString = "Welcome to My Server";
            output_data.write(sendDataString.getBytes());
    
            s_socket.close();
            c_socket.close();
        } catch (IOException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }

    }
}

 

 

client 쪽 소스코드

package socket.client;

import java.io.InputStream;
import java.net.Socket;


public class MainClient {
    public static void main(String[] args) {

        try {
            // Socket 객체를 생성하여 연결 시도
            // 연결할 IP 주소와 Port 번호를 매개변수로 넘겨 주어야 해당 주소로 연결을 시도함
            Socket c_socket = new Socket("192.168.0.55", 8888);
    
            // 만약 연결이 완료 되었다면 데이터를 스트림 형태로 받아와서 콘솔창에 출력
            InputStream input_data = c_socket.getInputStream();
            byte[] receiveBuffer = new byte[100];
            input_data.read(receiveBuffer);
            System.out.println(new String(receiveBuffer));
    
            c_socket.close();
            
        } catch (Exception e) {
            //TODO: handle exception
            e.printStackTrace();
        }

    }

}

 

실행화면

 

MainServer.java 실행 후

MainClient.java 실행 하면

다음과 같이 찍히는 것을 확인 가능합니다.

 

반응형

'Programing > JAVA' 카테고리의 다른 글

[java] Map을 로그에 출력하는 방법  (11) 2022.02.11
[ Java ] 로컬 ip 및 포트 확인방법  (0) 2021.11.04
[ Java ] 파일생성  (0) 2021.10.12
[ JAVA ] 서버 IP 가져오는 방법  (0) 2021.03.05
[JAVA] quartz 를 이용한 스케쥴러 구현  (0) 2018.06.18
  1. Server 쪽 소스코드
  2. client 쪽 소스코드
'Programing/JAVA' 카테고리의 다른 글
  • [java] Map을 로그에 출력하는 방법
  • [ Java ] 로컬 ip 및 포트 확인방법
  • [ Java ] 파일생성
  • [ JAVA ] 서버 IP 가져오는 방법
- 광속거북이 -
- 광속거북이 -
IT관련 일하면서 공부 및 일상 에 관한 내용들을 기록하기 위한 블로그 입니다.
누리IT관련 일하면서 공부 및 일상 에 관한 내용들을 기록하기 위한 블로그 입니다.
- 광속거북이 -
누리
- 광속거북이 -
전체
오늘
어제
  • 카테고리 (452)
    • 구글문서 (4)
    • 설치방법들 (3)
    • FrameWork (73)
      • Django (6)
      • Python (32)
      • AngularJS (13)
      • spring (21)
    • Programing (61)
      • JAVA (11)
      • etc... (2)
      • 오류 해결 (29)
      • Algorithm (5)
    • Front-End (25)
      • CSS (3)
      • html (6)
      • javascript (10)
      • vueJS (5)
    • Back-End (35)
      • 리눅스 (12)
      • PostgreSQL (14)
      • MySQL (2)
      • Shell (1)
      • docker (1)
      • GIT (1)
    • Util (9)
      • BIRT (2)
      • JMeter (3)
      • MobaXterm Personal (1)
      • ClipReport (2)
    • 이클립스 설정 (10)
      • SVN (1)
    • 업무중 기록해둘 것들... (1)
    • 영화 (8)
    • etc.. (198)
      • 여행 (25)
      • 문화생활 (3)
      • tistory (3)
      • 글, 생각 (4)
      • 먹을 곳 (29)
      • issue (4)
      • 결혼 (1)
      • 가족여행기록 (1)
      • Tip (51)
      • 강아지 (5)
      • 일기 (0)
      • 게임 (3)
      • 주식 (7)
      • 코로나19 (7)
      • 맥북 (5)
    • 비공개 (0)

블로그 메뉴

  • 홈
  • 태그
  • 미디어로그
  • 위치로그
  • 방명록

공지사항

인기 글

태그

  • 맛집
  • Java
  • 삼성증권
  • 리눅스
  • 인텔리제이
  • 제주도
  • 카페
  • 백준
  • 설치
  • 이클립스
  • VSCode
  • 설정
  • PostgreSQL
  • 윈도우10
  • 해지
  • tomcat
  • 합정
  • 포켓몬고
  • 연천
  • IntelliJ

최근 댓글

최근 글

hELLO · Designed By 정상우.v4.2.1
- 광속거북이 -
[ Java ] 소켓통신 예제
상단으로

티스토리툴바

단축키

내 블로그

내 블로그 - 관리자 홈 전환
Q
Q
새 글 쓰기
W
W

블로그 게시글

글 수정 (권한 있는 경우)
E
E
댓글 영역으로 이동
C
C

모든 영역

이 페이지의 URL 복사
S
S
맨 위로 이동
T
T
티스토리 홈 이동
H
H
단축키 안내
Shift + /
⇧ + /

* 단축키는 한글/영문 대소문자로 이용 가능하며, 티스토리 기본 도메인에서만 동작합니다.