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씩 증가하는것을 확인할 수 있습니다.
소스코드