소켓 통신을 통해 이미지를 전송하려고합니다. 도와주세요!

조회수 5395회

클라이언트(라즈베리파이)에서 촬영한 사진을 byte로 변환하여 서버(자바)로 보내어 받은 byte를 파일로 전환하여 사용하는 방법으로 생각은 해봤습니다.

하지만 직접 코딩하는데 있어 다소 어려움이 있어 질문합니다.

  1. 라즈베리파이 클라이언트를 c언어로 작성하려고합니다. 현재 서버와의 연결은 한 상태고, 일반적인 텍스트는 전송을 해봤습니다. 이미지를 전송하는 방법을 알고싶습니다.

  2. 자바로 서버를 만들려고하는데 1번을 통해 받은 이미지를 서버에서 보려고합니다. 받은 이미지를 볼 수 있는 방법을 알고 싶습니다.

  3. 소켓통신 외에 다른방법도 있는지 궁금합니다.

  • (•́ ✖ •̀)
    알 수 없는 사용자

1 답변

  • 첫번째 단순히 소켓 통신을 공부해서 프로토콜을 만드는 것이 목적이라면, 먼저 어떤 규칙으로 제어메시지와 데이터 전송을 할지 정한 후에 프로그램 개발하는 것이 좋을 것 같네요.

    두번째 서버에서 받은 이미지를 본다는 것이 어떤 의미인지 알 수가 없네요. 서버 프로그램시 받은 데이터를 파일로 저장하면, 서버에서 확인이 가능할텐데요? 서버로 전송한 것을 다른 형식으로 서비스하는 것이 목적이라면, 어떤 형태의 서비스 - 예를 들어 웹(HTML)으로 서비스 - 를 할 것인지 먼저 정해야하지 않을 까 싶네요.

    세번째 그리고 굳이 C를 써야만 하는 경우가 아니라면, 라즈베리파이는 python으로 작성해보세요. 그리고 Raw Socket으로 꼭 해야하는 이유가 없다면, HTTP(웹), Netty 등의 다양한 방법들이 있으니, 공부를 해보는 것을 고려해보는게 좋을 것 같습니다. 다음의 링크들을 한번 참고해보고, 관련 라이브러리/프레임워크등을 알아보는 것을 권합니다.

    1. 파이썬 HTTP 서버에 바이너리 파일 전송 예제 - http://code.activestate.com/recipes/576422-python-http-post-binary-file-upload-with-pycurl/
    2. 자바 Netty 예제 - http://jdm.kr/blog/151
    3. 파이썬 Flask 예제 - http://flask-docs-kr.readthedocs.io/ko/latest/patterns/fileuploads.html

    등, 어떤 목적이냐 따라, 방법과 라이브러리/프레임워크 조합은 상당히 많습니다.

    첨언 질문이 너무 포괄적이고 추상적이어서, 답변이 도움이 될지는 모르겠네요.

답변을 하려면 로그인이 필요합니다.

프로그래머스 커뮤니티는 개발자들을 위한 Q&A 서비스입니다. 로그인해야 답변을 작성하실 수 있습니다.

(ಠ_ಠ)
(ಠ‿ಠ)