• 전문가 요청 쿠폰 이벤트
*태*
Bronze개인
팔로워0 팔로우
소개
등록된 소개글이 없습니다.
전문분야 등록된 전문분야가 없습니다.
판매자 정보
학교정보
입력된 정보가 없습니다.
직장정보
입력된 정보가 없습니다.
자격증
  • 입력된 정보가 없습니다.
판매지수
전체자료 13
검색어 입력폼
  • [컴퓨터네트워크] 파일전송프로그램 평가A좋아요
    1. 동작 여부 및 실행 예1) 오류가 없는 경우① 먼저 파일이 저장될 클라이언트에 아래와 같은 ReceiveFile이란 폴더를 만들어야 합니다. 경로를 절대 경로로 설정하여 두어서 반드시 설정을 해두어야 합니다.② 서버에서 파일을 선택해서 전송을 하려는 단계입니다.③ 서버 측에서 파일(100메가 huge.zip)을 전송한 뒤의 화면입니다.(파일 스트림(I/O)버퍼와 랜으로의 파일전송 버퍼를 8Kbyte로 고정했을 때)④ 수신 완료시 클라이언트 측의 화면입니다.④ 서버 측에서 파일(10메가 test_10.zip)을 전송한 뒤의 화면입니다.(파일 스트림(I/O)버퍼와 랜으로의 파일전송 버퍼를 8Kbyte로 고정했을 때)④ 수신 완료시 클라이언트 측의 화면입니다2) 오류 발생 경우8KByte초과로(16KByte이상) 파일스트림(I/O) 버퍼와 랜으로의 파일 전송 버퍼를 두었을 때(Local 상과 네트워크 상에서 모두 동일합니다.) 이에 대한 분석은 뒤에서 다루겠습니다.2. 사용한 트랜스포트 계층 프로토콜 (TCP, UDP, 기타)제가 이 프로그램에서 사용한 프로토콜을 TCP/IP입니다. 그 중에서도 기본 구현 Tool이 비주얼 C++였기에 CAsyncSocket 클래스를 이용하였습니다. 따라서 non-Blocking 모드로 동작을 합니다. 아래의 그림을 참고로 하여 구현사항을 설명하겠습니다.기본적인 구현은 위 표와 동일합니다. 다만 bind()함수는 편의상 직접 IP주소와 Port번호를 입력하므로 실제 내부 함수 구현에서 생략되었습니다.1) 전체적인 이 프로그램의 파일전송은 흐름은 아래와 같습니다.① 서버와 클라이언트에서 각각 프로그램을 실행합니다. 각각 동일한 하나의 프로그램에서 라디오버튼으로 서버와 클라이언트를 선택할 수 있도록 구현했습니다. 그래서 각각 해당하는 라디오 버튼을 눌립니다.② 서버측이 먼저 ConnectOn버튼을 눌립니다. 다음 클라이언트 측이 ConnectOn버튼을 눌립니다. 그러면 상태창에 각각의 상태가 제대로 연결되었는지 표시가 나옵니다.③1kxx오류 발생파일 전송도에러 발생1k32kxx32k2kxx2k32xx32k4kxx4k32kxx32k8kxx8k32kxx32k16kxx16k32kxx32k32kxx2) 결과에 대한 분석입니다.실험 환경은 학교 피시실(펜티엄 4 1.7G, 메모리 256M, 하드 20G, 10/100이더넷 랜카드)에서 두 대의 컴퓨터를 이용하여 측정을 하였습니다. 주위에 사람들이 인터넷 같은 구내 랜선에 부하를 줄수 있는 프로그램을 사용하고 있을때보다는 그렇지 않을때가 훨씬더 속도가 빨랐습니다.측정에 사용한 파일은 홈페이지에 있는 huge.zip(100M) 파일과 correct.zip(10M)파일이었습니다. 물론 개인적으로 사용한 약 100M와 10M가 파일이 있었지만 측정 결과는 동일하여 생략했습니다.① 전체적으로 파일I/O 버퍼사이즈( )와 랜으로 파일전송시 TCP/IP 버퍼사이즈( )가 같을때 속도가 제일 빨랐습니다. 즉 파일 전송시 소요시간이 제일 짧았습니다. 아마도 메모리에서 파일을 읽어서 바로 랜으로 전송하는 것이 속도의 효율성면에서 월등히 좋아서 그런 듯 합니다.② 대체적으로 의 수치가 수치의 증가치보다 속도에 영향이 더 컸습니다. 즉 파일 I/O의 버퍼 사이즈가 일정 수준이상까지는 더 중요했습니다.③ 와 둘 다 같은 16Kbyte 이상의 버퍼를 가질 경우 전송시 에러가 발생했습니다. 이는 파일 I/O의 경우에 그 수치가 8Kbyte이상이 될 경우 한번의 로드가 아니라 두 번의 로드가 필요해서 그 시간의 딜레이로 인해 전송이 실패하는 경우가 발생한 것으로 보입니다. 또한 랜으로의 전송 역시 랜카드 자체의 버퍼사이즈와 TCP/IP전송시 이더넷 전송사이즈가 16Kbyte 이상의 경우 마찬가지로 딜레이로 인해 전송오류가 자주 발생했습니다. (한번이라도 전송오류가 발생했을 경우 도표에 'x'표시를 했습니다.)④ 버퍼의 사이즈가 8Kbyte까지 증가하는 경우, 처럼 메모리에 한꺼번에 로드해서 파일을 전송 하는 것보다 처럼 Pipe Line의 개념을 이용해서 전송하는 것이 훨alog's OnReceive function((CFileTransDlg*)m_pWnd)->OnReceive();}void CDerivedAsyncSocket::OnClose(int nErrorCode){if (nErrorCode == 0)// No, call the dialog's OnClose function((CFileTransDlg*)m_pWnd)->OnCClose();}void CDerivedAsyncSocket::OnSend(int nErrorCode){if (nErrorCode == 0)// No, call the dialog's OnSend function((CFileTransDlg*)m_pWnd)->OnSend();}// FileTransDlg.h : header file//#if !defined(AFX_FILETRANSDLG_H__090DF6CC_958A_4DA8_BDC4_732BF3E6999E__INCLUDED_)#define AFX_FILETRANSDLG_H__090DF6CC_958A_4DA8_BDC4_732BF3E6999E__INCLUDED_#include "DerivedAsyncSocket.h"#if _MSC_VER > 1000#pragma once#endif // _MSC_VER > 1000#include "time.h"#define PORT 5000#define IP "211.176.37.237"/////////////////////////////////////////////////////////////////////////////// CFileTransDlg dialogclass CFileTransDlg : public CDialog{// Constructionpublic:int m_SendCheck; // 보내기 모드인지..받기 모드인지..//1->보내기, 0->받기..time_t start_time, end_time;CFile *m_file; //파일포인터BOOL FileIsOpen; // 파일 오픈 여부..BOOL m_bCog(CFileTransDlg::IDD, pParent){//{{AFX_DATA_INIT(CFileTransDlg)m_strIP = _T("");m_nPort = 0;m_dFRSize = 0.0;m_dFSSize = 0.0;m_SendCheck=0;RRcount=SRcount=0;m_Status = _T("");//}}AFX_DATA_INIT// Note that LoadIcon does not require a subsequent DestroyIcon in Win32m_hIcon = AfxGetApp()->LoadIcon(IDR_MAINFRAME);m_bConnected=FALSE;FileIsOpen = FALSE;}void CFileTransDlg::DoDataExchange(CDataExchange* pDX){CDialog::DoDataExchange(pDX);//{{AFX_DATA_MAP(CFileTransDlg)DDX_Control(pDX, IDC_STATE, m_ctrlState);DDX_Control(pDX, IDC_GUBUN, m_ctrlStatic);DDX_Control(pDX, IDC_PROGRESS1, m_prCtrl);DDX_Control(pDX, IDC_EDIT_SEND, m_ctrlEditSendFile);DDX_Control(pDX, IDC_EDIT_RECEIVE, m_ctrlEditReceiveFile);DDX_Control(pDX, IDC_BUTTON_CONNECTON, m_ctrlButtonConnecton);DDX_Text(pDX, IDC_SERVERIP, m_strIP);DDX_Text(pDX, IDC_PORTNUM, m_nPort);DDX_Text(pDX, IDC_EDIT_FRSIZE, m_dFRSize);DDX_Text(pDX, IDC_EDIT_FSSIZE, m_dFSSize);DDX_Text(pDX, IDC_STATUS, m_Status);//}}AFX_DATA_MAP}BEGIN_MESSAGE_MAP(CFileTransDwText("Waiting");m_Status = "Connect out from Server";}if(FileIsOpen){m_file->Close();delete m_file;m_file = NULL;FileIsOpen = FALSE;}Sleep(1000);UpdateData(FALSE);}void CFileTransDlg::OnReceive(){if(m_SendCheck==0) //받기 모드시{OnRReceive();}if(m_SendCheck==1) //보내기 모드시{OnSReceive();}}void CFileTransDlg::OnClient() //콤보 제어{m_bclient=1-m_bclient;UpdateData(TRUE);m_Status = m_strIP;UpdateData(FALSE);m_Status = "";m_bserver=FALSE;if(m_bclient){m_ctrlStatic.SetWindowText("Client");m_ctrlButtonConnecton.SetWindowText("Connect");}}void CFileTransDlg::OnServer() //콤보 제어{// TODO: Add your control notification handler code herem_bserver=1-m_bserver;UpdateData(TRUE);m_Status = m_strIP;UpdateData(FALSE);m_Status = "";m_bclient=FALSE;if(m_bserver){m_ctrlStatic.SetWindowText("Server");m_ctrlButtonConnecton.SetWindowText("Listen");}}void CFileTransDlg::OnButtonConnecton() //Connecton / Listen버튼 눌렀을 때{// TODO: Add your control notification handler code hereif(!m_bConnected){UpdateData(TRUE);m_Status = m;
    공학/기술| 2003.06.12| 25페이지| 1,000원| 조회(4,928)
    미리보기
  • 일본애니메이션이 한국애니메이션에 미친 영양
    지금도 그렇지만 어릴 때부터 만화 영화를 무척이나 좋아했습니다. 초등학교 때 주말 아침이나 공휴일, 특히 명절 때만 되면 나오는 만화영화를 보려고 기를 쓰고 달려들었습니다. 행여나 그 시간대를 놓칠까봐 혼자서 얼마나 시계를 보며 기다렸는지, 어머니가 그걸 보시고는 그 당시 흔치 않던 리모컨 달린 TV도 제 방에 두셨습니다. 극장에서 만화영화를 상영한다고 하면 바쁘다고 한사코 싫다하시던 부모님에게 한참을 매달려 함께 보러 가곤 했습니다. 그런데 학년이 올라가면서 알게 된 사실, 그건 제가 그렇게 좋아하던 만화영화의 거의 대부분이 일본 작품이고 또 대부분 그 아류작이란 사실을 알게 되었을 때 자연스레 만화 영화와는 거리가 생기게 되었습니다. 제 우상이던 마징가 Z가 일본 것이고, 은하철도 999의 그 멋진 영상들까지도 그러했습니다. 그때만 하더라도 어린 저에겐 아주 큰 상처였기 때문입니다. 더구나 몇 번씩이나 같은 만화영화를 재탕 삼탕 식으로 상영하다보니 이제는 다음 장면이 무엇이 나올지도 외울 정도가 되어버려 애니메이션에 식상해지기도 했습니다.
    인문/어학| 2003.06.12| 11페이지| 1,000원| 조회(1,079)
    미리보기
  • [프로그래밍] 알카노이드 평가A좋아요
    이 프로그램은 ALKANOID(벽돌 깨기)라는 게임입니다. 막대를 이용하여 공으로 상단의 벽돌을 깨뜨리는 격파 게임입니다. 총 3개의 스테이지로 구성이 되어 있으며, 각 스테이지에 있는 모든 벽돌을 다 깨야지만 다음 스테이지로 넘어갑니다. ⑴ 실행파일 : block.exe (컴파일하시면 나옵니다.) ⑵ 실행 시 반드시 실행파일과 함께 trumpet1.wav 파일과 done.wav 파일 및 good.mid 파일이 같이 있어야 합니다. (이 파일들은 배경음악 및 효과음 파일입니다.) ⑶ 시스템에 비주얼 C++이 설치되어 있어야 하며(제작 시 6.0에서 작업) 운영체제는 윈도우 2000 과 XP에서 원활히 실행됩니다. (단 98에서는 실행을 장담할 수 없습니다.)
    공학/기술| 2002.11.29| 34페이지| 1,000원| 조회(3,696)
    미리보기
  • [프로그래밍] Push Push 게임 평가A+최고예요
    1. 프로그램 개요 및 설명 : 이 프로그램은 푸쉬푸쉬란 게임이다. 푸쉬맨(새알)이 주어진 말(편지)을 집(우체통)에 모두 다 넣으면 되는 게임이다. (삼성 휴대폰에 있는 게임과 동일하다.)♣ 단 이 프로그램을 실행 시 실행파일과 음악 파일들이 같은 디렉토리에 있어야 한다. 아래는 음악 파일 리스트이다. 시디에는 실행파일과 같은 루트 디렉토리에 들어있다.2. 설명서 : 1-5번까지 내용은 그대로 구현이 되었다.6번 : 주어진 스펙대로 푸쉬맨(새알)이 움직인 횟수를 표시 하였다.7번 : Back 기능은 툴바의 버튼을 눌리면 실행된다. 단 1회만 가능하다.8번 : 총 3개의 게임으로 구성되어 있다. 현재 게임을 clear할 경우 다음 단계로 넘어가게 되어있다.9번 : 추가한 사항은 아래와 같다. ① 배경과 각각의 아이콘들을 직접 그렸다. 푸쉬맨->새알, 말->편지, 집->우체통으로 모두 바뀌었고 벽도 꽃무늬로 바뀌었다. 편지가 우체통에 들어갈 때와 푸쉬맨이 우체통에 들어갈 때도 그림이 다르다. ② 배경음악과 효과음들이 추가되었다. 푸쉬맨이 움직이거나 집 속으로 말이 들어갈 때, 이동하지 못하는 경우(에를 들면, 벽 쪽으로 계속 이동하려고 할 때)에 각각의 효과음을 나타낸다. 또한 각 스테이지를 clear 할 경우와 전체 스테이지를 lear 했을 때, Undo 버튼을 사용했을 때도 효과음이 난다.
    공학/기술| 2002.11.29| 29페이지| 1,000원| 조회(3,802)
    미리보기
  • [이산수학] dijstra 알고리즘 평가C아쉬워요
    -비주얼 C++ 6.0으로 만들었습니다.-//array.h 인접행렬로 나타낸 데이터 파일입니다.//#define M 5000int adj[8][8] = {{0,3,5,M,M,1,8,M},{3,0,2,1,M,M,M,M},{5,2,0,M,2,M,M,1},{M,1,M,0,1,5,M,M},{M,M,2,1,0,M,1,M},{1,M,M,5,M,0,6,M},{8,M,M,M,1,6,0,4},{M,M,1,M,M,M,4,0}};//view파일입니다..// SHORTPATHView.cpp : implementation of the CSHORTPATHView class//#include "stdafx.h"#include "SHORTPATH.h"#include "SHORTPATHDoc.h"#include "SHORTPATHView.h"#include "Input.h"#include "array.h"#ifdef _DEBUG#define new DEBUG_NEW#undef THIS_FILEstatic char THIS_FILE[] = __FILE__;#endif/////////////////////////////////////////////////////////////////////////////// CSHORTPATHViewIMPLEMENT_DYNCREATE(CSHORTPATHView, CView)BEGIN_MESSAGE_MAP(CSHORTPATHView, CView)//{{AFX_MSG_MAP(CSHORTPATHView)ON_COMMAND(ID_SHORT, OnShort)//}}AFX_MSG_MAP// Standard printing commandsON_COMMAND(ID_FILE_PRINT, CView::OnFilePrint)ON_COMMAND(ID_FILE_PRINT_DIRECT, CView::OnFilePrint)ON_COMMAND(ID_FILE_PRINT_PREVIEW, CView::OnFilePrintPreview)END_MESSAGE_MAP()///////////////////////// CSHORTPATHView construction/destructionCSHORTPATHView::CSHORTPATHView(){// TODO: add construction code here}CSHORTPATHView::~CSHORTPATHView(){}BOOL CSHORTPATHView::PreCreateWindow(CREATESTRUCT& cs){// TODO: Modify the Window class or styles here by modifying// the CREATESTRUCT csreturn CView::PreCreateWindow(cs);}/////////////////////////////////////////////////////////////////////////////// CSHORTPATHView drawingvoid CSHORTPATHView::OnDraw(CDC* pDC){CSHORTPATHDoc* pDoc = GetDocument();ASSERT_VALID(pDoc);// TODO: add draw code for native data hereDrawLine(pDC); //기본적으로 주어진 그래프를 그린다.}/////////////////////////////////////////////////////////////////////////////// CSHORTPATHView printingBOOL CSHORTPATHView::OnPreparePrinting(CPrintInfo* pInfo){// default preparationreturn DoPreparePrinting(pInfo);}void CSHORTPATHView::OnBeginPrinting(CDC* /*pDC*/, CPrintInfo* /*pInfo*/){// TODO: add extra initialization before printing}void CSHORTPATHView::OnEndPrinting(CDC* /*pDC*/, CPrintInfo*///////////////////////////////////////////////////////////////////////// CSHORTPATHView diagnostics#ifdef _DEBUGvoid CSHORTPATHView::AssertValid() const{CView::AssertValid();}void CSHORTPATHView::Dump(CDumpContext& dc) const{CView::Dump(dc);}CSHORTPATHDoc* CSHORTPATHView::GetDocument() // non-debug version is inline{ASSERT(m_pDocument->IsKindOf(RUNTIME_CLASS(CSHORTPATHDoc)));return (CSHORTPATHDoc*)m_pDocument;}#endif //_DEBUG/////////////////////////////////////////////////////////////////////////////// CSHORTPATHView message handlersvoid CSHORTPATHView::OnShort(){// TODO: Add your command handler code hereInvalidate(); //새로이 시작시 다시 주어진 그래프를 그려준다.CInput dlg; //입력 다이얼로그 실행if(dlg.DoModal()==IDOK){char in_start=dlg.m_start.GetAt(0); //한문자만 받아들이기 위한 변환.char in_end=dlg.m_end.GetAt(0);int covert_start,covert_end;switch(in_start) //알고리즘의 적용을 위해 int형으로 변화.{case 'a': covert_start = 0; break;case 'b': covert_start = 1; break;case 'c': covert_start = 2; break;case 'd': covert_start = 3; break;ca = 5; break;case 'g': covert_start = 6; break;case 'z': covert_start = 7; break;}switch(in_end){case 'a': covert_end = 0; break;case 'b': covert_end = 1; break;case 'c': covert_end = 2; break;case 'd': covert_end = 3; break;case 'e': covert_end = 4; break;case 'f': covert_end = 5; break;case 'g': covert_end = 6; break;case 'z': covert_end = 7; break;}int length1[8]; //최단경로값을 가지고 있는 배열int length2[8]; //dijkstra 알고리즘에서 v를 제거하기 위한 배열int int_path[8] = {0,1,2,3,4,5,6,7};//처음과 끝을 배열 계산의 편리를 위해 0부터 7로 정했다.//시작값:covert_start = 1 , 종료값:covert_end = 8int v=0; //임시 변수int temp = 0; //임시 변수{for(int i = 0; i < 8; i++) //length1 초기화length1[i] = M;length1[covert_start] = 0;}for(int i=0;i < 8; i++){for(int j=0;j MoveTo(200,100);//b-cpDC->LineTo(500,100);pDC->MoveTo(100,200);//a-fpDC->LineTo(200,300);pDC->MoveTo(200,300);//f-dpDC->LineTo(300,200);pDC->MoveTo(200,300);//f-gpDC->LineTo(500,300);pDC->MoveTo(400,200);//e-gpDC->LineTo(500,300);pDC->MoveTo(200,100);//b-dpDC->LineTo(300,200);pDC->MoveTo(300,20epDC->LineTo(400,200);pDC->MoveTo(500,100);//c-zpDC->LineTo(600,200);pDC->MoveTo(500,300);//g-zpDC->LineTo(600,200);pDC->MoveTo(100,200);//a-cpDC->LineTo(500,100);pDC->MoveTo(100,200);//a-gpDC->LineTo(500,300);pDC->TextOut(140,130,"3"); // Weight 나타내기.pDC->TextOut(560,130,"1");pDC->TextOut(350,80,"2");pDC->TextOut(244,122,"1");pDC->TextOut(200,150,"5");pDC->TextOut(440,130,"2");pDC->TextOut(210,255,"5");pDC->TextOut(455,230,"1");pDC->TextOut(200,205,"8");pDC->TextOut(345,180,"1");pDC->TextOut(345,310,"6");pDC->TextOut(140,260,"1");pDC->TextOut(550,260,"4");pDC->TextOut(85,190,"a");pDC->TextOut(195,80,"b");pDC->TextOut(498,80,"c");pDC->TextOut(275,192,"d");pDC->TextOut(415,192,"e");pDC->TextOut(195,305,"f");pDC->TextOut(500,300,"g");pDC->TextOut(610,190,"z");pDC->SelectObject(oldpen);}void CSHORTPATHView::DrawPath(int *ro, int *length1, int covert_end)//경로 그리기{CClientDC cdc(this);CPen pen,*oldpen;pen.CreatePen(PS_SOLID,2,RGB(255,0,255)); //빨간색으로 그린다.oldpen=cdc.SelectObject(&pen);int poi
    공학/기술| 2002.04.15| 8페이지| 1,000원| 조회(669)
    미리보기
전체보기
받은후기 20
20개 리뷰 평점
  • A+최고예요
    4
  • A좋아요
    7
  • B괜찮아요
    4
  • C아쉬워요
    3
  • D별로예요
    2
전체보기
해캠 AI 챗봇과 대화하기
챗봇으로 간편하게 상담해보세요.
2026년 04월 04일 토요일
AI 챗봇
안녕하세요. 해피캠퍼스 AI 챗봇입니다. 무엇이 궁금하신가요?
11:38 오후
문서 초안을 생성해주는 EasyAI
안녕하세요 해피캠퍼스의 20년의 운영 노하우를 이용하여 당신만의 초안을 만들어주는 EasyAI 입니다.
저는 아래와 같이 작업을 도와드립니다.
- 주제만 입력하면 AI가 방대한 정보를 재가공하여, 최적의 목차와 내용을 자동으로 만들어 드립니다.
- 장문의 콘텐츠를 쉽고 빠르게 작성해 드립니다.
- 스토어에서 무료 이용권를 계정별로 1회 발급 받을 수 있습니다. 지금 바로 체험해 보세요!
이런 주제들을 입력해 보세요.
- 유아에게 적합한 문학작품의 기준과 특성
- 한국인의 가치관 중에서 정신적 가치관을 이루는 것들을 문화적 문법으로 정리하고, 현대한국사회에서 일어나는 사건과 사고를 비교하여 자신의 의견으로 기술하세요
- 작별인사 독후감