Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
Tags
- clp 325wk
- MFC
- c++
- Eclipse
- java.net.bindexception
- linearlaout
- urllib3
- IntelliJ
- setonkeylistener
- ds cloud
- quickconnect
- Linux
- formatting failed
- 라즈베리파이
- 이클립스 주석
- 장치 데이터 오류
- 주석 숨김
- Wraith Spire
- SSL 인증서가 변경되었습니다
- truncated
- audio station버그
- cloud station
- SetWindowTextW
- git
- 시놀로지 색인
- windows terminal
- github
- cloudstation
- JSON
- synology
Archives
- Today
- Total
딸기스무디
java - python JSON 소켓 통신 프로그래밍 본문
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씩 증가하는것을 확인할 수 있습니다.
소스코드
'Java' 카테고리의 다른 글
Intellij 한글깨짐 해결 (0) | 2021.08.09 |
---|---|
Gradle 한글 깨짐 해결 (1) | 2021.08.08 |
intellij) 현재 프로젝트의 jdk 버전 설정하기 (0) | 2020.09.11 |
intellij) intellij에서 git 사용시 팁 (0) | 2020.09.11 |
Intellij) 대/소문자를 가리지 않고 자동완성하기 (1) | 2019.06.26 |
Comments