딸기스무디

java - python JSON 소켓 통신 프로그래밍 본문

Java

java - python JSON 소켓 통신 프로그래밍

strawberry-smoothie 2020. 9. 19. 00:37

java로 작성된 server와 python으로 작성된 client사이에 JSON으로 데이터를 주고받는 프로그램입니다.

 

 

1. Java에서 Json String 만들기

int num
String message = "{\"name\":\"server\", \"contents\":\"hello client\", \"num\": \""+num+"\"}";

key-value마다 \"를 앞뒤로 붙여주지 않으면 "Unexpected character (') at position 1"과 같은 오류가 발생

변수를 사용하고 싶다면 \""+{변수}+"\"로 사용하기

 

 

2. 파싱하기

JSONParser parser = new JSONParser();
JSONObject obj;
obj = (JSONObject)parser.parse(message); // String -> Json

JSONParser를 사용해서 String에서 JSONObject로 변환

 

 

3.  파이썬에서 Json다루기

data = {'name': 'client', 'contents': input_tmp, 'num': num}
myjson = json.dumps(data) # dict -> JSON
print("send: name: {0}, contents: {1}, num: {2}".format(data['name'], data['contents'], data['num']))

파이썬은 dict로 선언한 후 그냥 사용하면 되므로 가장 사용하기 편합니다

 

 

 

서버(Java)

num 10인 JSON을 수신하고 11로 바꾸어 전송한 결과입니다

 

 

 

 

 

클라이언트(python)

console로 입력한 내용을 서버로 전송하고 답장을 수신하는 예시입니다.

num값이 한번 보낼때마다 1씩 증가하는것을 확인할 수 있습니다.

 

 

 

 

 

소스코드

 

 

github.com/raspberrypeach/socket-programming.git

Comments