안드로이드와 라즈베리파이(파이썬)의 소켓 통신 중 문제가 생겼습니다.

magmacoffee의 이미지

안드로이드(클라이언트)와 라즈베리파이(서버)의 소켓 통신을 하려는데 Broken pipe 에러가 납니다.

지금 전체 시스템 구조가

안드로이드 <---TCP---> 라즈베리파이2 <---MODBUS---> 터치스크린

이렇게 되어 있어서 라즈베리파이와 터치스크린 간에 연동은 마친 상태입니다.

안드로이드 앱에서 버튼을 눌렀을때 파이를 거쳐 터치 스크린에 그 값이 변경되는것 까지도 됩니다.

그런데 최초 접속시 스크린의 정보를 가져와야 하는 상황에서 상태 값을 라즈베리파이 -> 스마트폰 으로 보내는 과정에서 에러가 발생하네요

Broken pipe 에러를 구글링 해보니 소켓이 닫힌 상태에서 읽기/쓰기 를 하려고 하면 발생하는 것이라고 이해했습니다만..

정확히 이해한게 맞는지도 모르겠습니다.

소켓을 열어두면 예외가 발생하지 않는 이상 계속 유지되는 걸로 알고 있는데 이것도 잘못알고 있는건지 참 막막합니다.

File attachments: 
첨부파일 크기
Image icon recvSocket.PNG67.22 KB
Image icon Connect.PNG69.14 KB
Image icon pi.PNG41.76 KB
shint의 이미지

----------------------------------------------------------------------------
젊음'은 모든것을 가능하게 만든다.

매일 1억명이 사용하는 프로그램을 함께 만들어보고 싶습니다.
정규 근로 시간을 지키는. 야근 없는 회사와 거래합니다.

각 분야별. 좋은 책'이나 사이트' 블로그' 링크 소개 받습니다. shintx@naver.com