C++ 예제 (소켓 클라이언트, 이미지, 파일전송)

이미지
이전 게시물인 소켓 프로그래밍 서버 에 이은 클라이언트 측에 대한 설명입니다. [클라이언트 실행화면] 기본적인 소켓 프로그래밍에 대한 개요, 프로토콜, 실행파일, 전체 소스코드 는 이전 게시물인 서버측을 참조 바랍니다. 제작된 클라이어트와 앞서 만든 서버측간 이미지, 파일 전송 테스트 진행 결과입니다. 이미지 전송 테스트 서버, 클라이어언트 테스트는 내부 사설 IP 환경 (192.168.XXX.XXX) 에서 테스트 되었으며, 외부 네트워크와 테스트시 서버가 실행되는 PC는 공인 IP 로 설정 or 사설 IP의 경우 포트포워딩 이 필요합니다. 서버 실행, 클라이어트 2개 연결 [테스트 준비] 클라이언트 파일 보내기 버튼 클릭 이미지, 파일 필터 선택 [CFileDialog 생성] 테스트 이미지 선택, 전송 test.bmp 파일, (Size 23Mbyte) 서버측에 전달된 후 다시 클라이언트로 ...

C++ 예제 (소켓 서버, 이미지, 파일전송)

이미지
이번 주제는 C++ 과 MFC 를 이용한 소켓 프로그래밍 입니다.  심화반 수강생 중 C++로 소켓 프로그래밍을 진행하는 학생이 있어 참조할만한 간단 예제로 만들어 보았습니다.  인터넷 검색을 통해 찾아본 대부분의 소켓프로그래밍 예제는 1:1 연결이거나, 1:N 이지만 문자열만 전송가능하거나, 또는 이미지만 전송가능한 경우가 대부분이었습니다.  이 예제는 문자열, 이미지, 파일에 대한 전송 이 모두 가능하도록 만들어져 있습니다. 아래 링크된 서버와 클라이언트 (여러개) 실행파일을 이용해 테스트 가능합니다.  1. 서버 실행, 접속 대기 2. N개의 클라이언트 실행, 서버로 접속 3. 클라이언트 데이터 전송 (문자, 이미지, 파일 등) 4. 서버 데이터 수신 5. 접속된 모든 클라이언트로 수신 데이터 전송 [서버-클라이언트 통신 개요] 서버 프로그램 실행파일 : 서버 클라이언트 프로그램 실행파일 : 클라이언트 전체 소스코드 : 소스코드 (VS 2017) 이 글에서는 서버 에 대한 내용을 다룹니다. 개요 서버의 주요 사항은 아래와 같습니다. Winsock API Ver. 2.2 를 이용한 서버 소켓 클래스 생성 클라이언트 접속자 리스트 관리 (ip, port, 접속 시점) ...

PyQt 기반 로또번호 생성기앱

이미지
이번에는 로또 번호 추첨기 코드를 파이썬 + Pandas + PyQt5 를 이용해 만들어 보았습니다. [프로그램 실행화면] [역대 1등 당첨 번호 보기] 주요 기능으로, 1. 1~10개 까지 6자리 세트 번호 생성이 가능 2. 랜덤 번호 생성 중 역대 1등 번호와 중복된 경우 표시 [1등 번호와 일치하는 경우] 3. 동행복권 사이트에서 받은 엑셀 파일을 Pandas Dataframe 으로 불러들인 후 처리 이 프로그램은 중복되지 않는 1~45 사이의 난수를 6개 생성하고, 당첨 확율을 올리기 위해 역대 1등 번호와 중복되는지 확인을 진행하는 것이 목표였습니다.   여기서 좀 고민이 있었습니다.   역대 당첨번호가 뭔지 모른다는게 문제입니다.   물론, 인터넷에서 역대 당첨번호 리스트를 구해 생성된 난수와 서로 눈으로 비교해 볼 수 도 있겠지만, 매우 귀찮은 일이죠. 그렇다고 코드내부에 모든 역대 1등 당첨 번호를 작성해 넣고, 이를 활용하는 것도 번거로운 일입니다.   그래서 검색을 해보니 로또복권 사이트에서  역대 1등 당첨번호, 당첨금 등 데이터를 정리해 엑셀로 제공 해주고 있다는 사실을 알게 되었습니다. 그렇다면, 일은 쉬워지죠. 판다스에서 그 엑셀파...

Google Maps API로 구글맵 제작하기

이미지
개요 이번에는 파이썬 + 구글맵 + PyQt5 를 이용해 아래와 같은 프로그램을 만들어 보았습니다.  지명이나 위경도 좌표를 입력하고, 그리기 버튼을 누르면 구글에 REST 기반 요청신호 (Http Request)를 보내 지도를 이미지로 다운로드 받아 화면에 표시하는 방식입니다. 프로그램 실행 화면 지도에 GPS센서로부터 수신된 위경도 좌표를 표시할 일이 생겼는데, NAVER, KAKAO 지도는 국내만 지원되어 제외하고 구글 맵으로 연동해 보았습니다. 이 예제를 실행하기 위해서는 Google Cloud Platform(GCP) 에 사전에 가입하고 구글맵을 사용하기위한 Key를 발급받아야 합니다.   [GCP 소개 : 출처 GCP 홈] 이 키를 통해 구글로 정보를 요청하고 받아와서 출력하는 방식입니다. GCP는 구글맵뿐만 아니라 컴퓨팅, 네트워킹, 빅테이터 관련한 다양한 서비스를 제공합니다. 구글의 클라우드 서버가 존재하는 지역정보입니다. [GCP 리전 소개 : 출처 GCP 홈] 이 글에서 Google Maps Platform에 가입절차 및 Key를 받는 과정은 생략 합니다. ...

이 블로그의 인기 게시물

Qt Designer 설치하기

파이썬을 활용한 PID 제어기 GUI 구현

PyQt5 기반 동영상 플레이어앱 만들기