Programming/JAVA / / 2019. 8. 25. 20:25

java python socket 통신 하는법

반응형

오늘은 자바와 파이썬 사이에서 데이터 socket을 이용해 주고 받는것을 알려드리겠습니다.

 

 

소켓이란: 소켓은 응용 프로그램에서 TCP/IP를 이용하는 창구 역할을 하며 응용 프로그램과 소켓 사이의 인터페이스 역할을 하고 있습니다. 두 프로그램이 네트워크를 통해 서로 통신을 수행할 수 있도록 양쪽에 생성되는 링크의 단자입니다.

 

java : socket 서버

 

python: socket 클라이언트

 

자바서버 코드

package com.bit.socket;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.net.ServerSocket;
import java.net.Socket;
public class SocketTest {
public static void main(String[] args) {
while(true) {
try {
ServerSocket serverSocket = null;
serverSocket = new ServerSocket(8112);  // 포트번호 설정 및 소켓 생성
System.out.println("접속 대기중...");
Socket socket = serverSocket.accept();  
System.out.println("클라이언트 접속");

BufferedReader br = new BufferedReader(
new InputStreamReader(socket.getInputStream(),"UTF-8"));


String rev = br.readLine();  // 클라이언트에서 보내오 데이터 rev에 저장
System.out.println(rev);


br.close();
socket.close();
serverSocket.close();
System.out.println("종료");
} catch(IOException e) {
e.printStackTrace();
}
}
}
}

 

파이썬 클라이언트 코드

from socket import *
from select import select
import sys
from _socket import AF_INET, socket, SOCK_STREAM


def sendmessage(msg):
    HOST= '127.0.0.1'  # 서버 아이피
    PORT= 8112  # 서버 포트 번호
    BUFSIZE=1024
    clientSocket = socket(AF_INET,SOCK_STREAM)  # 소켓 생성
    try:
        clientSocket.connect((HOST,PORT))  # 서버 연결
        clientSocket.sendall(bytes(msg,'UTF-8')) 

      # UTF-8 인코딩으로 서버에 데이터 전송 msg : 안에 "test 2015 8" 문자열 저장
        print('Send : Hello, Server!')
        clientSocket.close()
        print("종료")
        return true;
    except Exception as e:
       print(e)

 

실행화면

 

1. java 서버 실행

2. 파이썬 실행후 자바 콘솔 화면

제가 함수로 변수 msg 에다가 "test 2018 5" 라는 문자열을 넣어서 

잘 넘어오는 것을 확인 할 수 있습니다.

반응형
  • 네이버 블로그 공유
  • 네이버 밴드 공유
  • 페이스북 공유
  • 카카오스토리 공유