UDP와 Stop & Wait를 사용하여 만든 파일 전송 프로그램
*병*
다운로드
장바구니
소개글
다음과 같이 실행을 하게 되면 초기 화면이 나오게 된다. 먼저 구성은 좌측은 서버측에서 사용되는 변수들을 화면에 띄운 것이고 우측은 클라이언트측에서 보아야할 화면이다. 물론 이 두 개가 동시에 나오지만 각자 자신이 파일을 보내는 쪽이라면 서버측을 파일을 받는 쪽이라면 클라이언트측을 보면 되겠다. 이 프로그램의 사용법은 UDP라는 메뉴를 눌리고 이 때 파일 전송이라는 메뉴를 눌리면 아래와 같은 다이얼로그 상자가 하나 나오게 된다. 그럼 위의 다이얼로그 상자에서 파일 찾기 버튼을 클릭하면 아래와 같이 파일 경로를 쉽게 찾아주는 기능을 하는 다른 창이 뜨게 되며 이 때 전송하고자 하는 파일을 선택하고 확인을 눌리면 된다. 여기서는 전송시간이 오래 걸리지 않게 하기 위해 용량이 1.4Mbytes 정도 되는 데몬 프로그램을 선택 하였다. 선택하면 파일 경로가 다이얼로그에 자동적으로 나오고 밑에 상대방의 IP를 치는 곳에 보내고자 하는 상대방의 IP를 치고 파일 보내기를 누르면 파일 전송이 시작된다. 위의 그림과 같이 서버측에서는 보내고자 하는 파일의 크기와 총 보내야하는 패킷수가 나오고 반대로 클라이언트측에서는 자신이 받은 패킷의 수가 나오게 된다. 전송이 시작되면 클라이언트측에서는 화면에 저장을 요청하면 다이얼로그가 발생하는데 이때 확장자만 맞추어서 저장을 눌러준다. 이렇게 클라이언트측에서 저장을 누름과 동시에 연속적으로 파일이 저장되고 마지막까지 전송이 되면 클라이언트측에서 파일을 다 받았다는 메시지로 전환이 된 것을 볼 수 있다. 다음은 각각 전송중일 때의 화면과 전송이 끝나고 난 후의 화면을 캡쳐한 것이다.프로그램과 관련 보고서를 첨부 하였다.
컴파일 실행환경
Microsoft visual C++본문내용
다음과 같이 실행을 하게 되면 초기 화면이 나오게 된다. 먼저 구성은 좌측은 서버측에서 사용되는 변수들을 화면에 띄운 것이고 우측은 클라이언트측에서 보아야할 화면이다. 물론 이 두 개가 동시에 나오지만 각자 자신이 파일을 보내는 쪽이라면 서버측을 파일을 받는 쪽이라면 클라이언트측을 보면 되겠다. 이 프로그램의 사용법은 UDP라는 메뉴를 눌리고 이 때 파일 전송이라는 메뉴를 눌리면 아래와 같은 다이얼로그 상자가 하나 나오게 된다. 그럼 위의 다이얼로그 상자에서 파일 찾기 버튼을 클릭하면 아래와 같이 파일 경로를 쉽게 찾아주는 기능을 하는 다른 창이 뜨게 되며 이 때 전송하고자 하는 파일을 선택하고 확인을 눌리면 된다. 여기서는 전송시간이 오래 걸리지 않게 하기 위해 용량이 1.4Mbytes 정도 되는 데몬 프로그램을 선택 하였다. 선택하면 파일 경로가 다이얼로그에 자동적으로 나오고 밑에 상대방의 IP를 치는 곳에 보내고자 하는 상대방의 IP를 치고 파일 보내기를 누르면 파일 전송이 시작된다. 위의 그림과 같이 서버측에서는 보내고자 하는 파일의 크기와 총 보내야하는 패킷수가 나오고 반대로 클라이언트측에서는 자신이 받은 패킷의 수가 나오게 된다. 전송이 시작되면 클라이언트측에서는 화면에 저장을 요청하면 다이얼로그가 발생하는데 이때 확장자만 맞추어서 저장을 눌러준다. 이렇게 클라이언트측에서 저장을 누름과 동시에 연속적으로 파일이 저장되고 마지막까지 전송이 되면 클라이언트측에서 파일을 다 받았다는 메시지로 전환이 된 것을 볼 수 있다. 다음은 각각 전송중일 때의 화면과 전송이 끝나고 난 후의 화면을 캡쳐한 것이다.프로그램과 관련 보고서를 첨부 하였다.
압축파일 내 파일목록
최종보고서.hwp
UDP-최종/MainFrm.cpp
UDP-최종/MainFrm.h
UDP-최종/PortDlg.cpp
UDP-최종/PortDlg.h
UDP-최종/ReadMe.txt
UDP-최종/resource.h
UDP-최종/SenderFrame.cpp
UDP-최종/SenderFrame.h
UDP-최종/StdAfx.cpp
UDP-최종/StdAfx.h
UDP-최종/UDP.APS
UDP-최종/UDP.clw
UDP-최종/UDP.cpp
UDP-최종/UDP.dsp
UDP-최종/UDP.dsw
UDP-최종/UDP.h
UDP-최종/UDP.ncb
UDP-최종/UDP.opt
UDP-최종/UDP.plg
UDP-최종/UDP.rc
UDP-최종/UDP.suo
UDP-최종/UDPDlg.cpp
UDP-최종/UDPDlg.h
UDP-최종/UDPDoc.cpp
UDP-최종/UDPDoc.h
UDP-최종/UDPSocket.cpp
UDP-최종/UDPSocket.h
UDP-최종/UDPView.cpp
UDP-최종/UDPView.h
UDP-최종/VAerror.log
UDP-최종/문제점.txt
UDP-최종/Debug/MainFrm.obj
UDP-최종/Debug/PortDlg.obj
UDP-최종/Debug/SenderFrame.obj
UDP-최종/Debug/StdAfx.obj
UDP-최종/Debug/UDP.exe
UDP-최종/Debug/UDP.ilk
UDP-최종/Debug/UDP.obj
UDP-최종/Debug/UDP.pch
UDP-최종/Debug/UDP.pdb
UDP-최종/Debug/UDP.res
UDP-최종/Debug/UDPDlg.obj
UDP-최종/Debug/UDPDoc.obj
UDP-최종/Debug/UDPSocket.obj
UDP-최종/Debug/UDPView.obj
UDP-최종/Debug/vc60.idb
UDP-최종/Debug/vc60.pdb
UDP-최종/Release/MainFrm.obj
UDP-최종/Release/PortDlg.obj
UDP-최종/Release/SenderFrame.obj
UDP-최종/Release/StdAfx.obj
UDP-최종/Release/UDP.exe
UDP-최종/Release/UDP.obj
UDP-최종/Release/UDP.res
UDP-최종/Release/UDPDlg.obj
UDP-최종/Release/UDPDoc.obj
UDP-최종/Release/UDPSocket.obj
UDP-최종/Release/UDPView.obj
UDP-최종/Release/vc60.idb
UDP-최종/res/Thumbs.db
UDP-최종/res/Toolbar.bmp
UDP-최종/res/UDP.ico
UDP-최종/res/UDP.rc2
UDP-최종/res/UDPDoc.ico
UDP-최종/MainFrm.cpp
UDP-최종/MainFrm.h
UDP-최종/PortDlg.cpp
UDP-최종/PortDlg.h
UDP-최종/ReadMe.txt
UDP-최종/resource.h
UDP-최종/SenderFrame.cpp
UDP-최종/SenderFrame.h
UDP-최종/StdAfx.cpp
UDP-최종/StdAfx.h
UDP-최종/UDP.APS
UDP-최종/UDP.clw
UDP-최종/UDP.cpp
UDP-최종/UDP.dsp
UDP-최종/UDP.dsw
UDP-최종/UDP.h
UDP-최종/UDP.ncb
UDP-최종/UDP.opt
UDP-최종/UDP.plg
UDP-최종/UDP.rc
UDP-최종/UDP.suo
UDP-최종/UDPDlg.cpp
UDP-최종/UDPDlg.h
UDP-최종/UDPDoc.cpp
UDP-최종/UDPDoc.h
UDP-최종/UDPSocket.cpp
UDP-최종/UDPSocket.h
UDP-최종/UDPView.cpp
UDP-최종/UDPView.h
UDP-최종/VAerror.log
UDP-최종/문제점.txt
UDP-최종/Debug/MainFrm.obj
UDP-최종/Debug/PortDlg.obj
UDP-최종/Debug/SenderFrame.obj
UDP-최종/Debug/StdAfx.obj
UDP-최종/Debug/UDP.exe
UDP-최종/Debug/UDP.ilk
UDP-최종/Debug/UDP.obj
UDP-최종/Debug/UDP.pch
UDP-최종/Debug/UDP.pdb
UDP-최종/Debug/UDP.res
UDP-최종/Debug/UDPDlg.obj
UDP-최종/Debug/UDPDoc.obj
UDP-최종/Debug/UDPSocket.obj
UDP-최종/Debug/UDPView.obj
UDP-최종/Debug/vc60.idb
UDP-최종/Debug/vc60.pdb
UDP-최종/Release/MainFrm.obj
UDP-최종/Release/PortDlg.obj
UDP-최종/Release/SenderFrame.obj
UDP-최종/Release/StdAfx.obj
UDP-최종/Release/UDP.exe
UDP-최종/Release/UDP.obj
UDP-최종/Release/UDP.res
UDP-최종/Release/UDPDlg.obj
UDP-최종/Release/UDPDoc.obj
UDP-최종/Release/UDPSocket.obj
UDP-최종/Release/UDPView.obj
UDP-최종/Release/vc60.idb
UDP-최종/res/Thumbs.db
UDP-최종/res/Toolbar.bmp
UDP-최종/res/UDP.ico
UDP-최종/res/UDP.rc2
UDP-최종/res/UDPDoc.ico