• 검색 결과가 없습니다.

Network Project

N/A
N/A
Protected

Academic year: 2023

Share "Network Project"

Copied!
18
0
0

로드 중.... (전체 텍스트 보기)

전체 글

(1)

Network Project ( 중간 보고 )

GIS Messenger (Geographic Information System & Messenger)

교수명 : 임효택 교수님

조 원 : 98003177 김 운기 20011568 김 민주 20011579 김 주도

(2)

1. 프로젝트 진행 상황

2. 프로젝트 중간 현황 보고

3. 프로젝트 진행 중 어려운 점 4. 프로젝트 남은 과제

목 차

2-1) PtoP 방식이란 ?

2-2) Client/Server vs P2P 2-3) 중간 현황

(3)

1. 프로젝트 진행 상황 :

중간점검 2

~

25 ~ 6/3 8 비고

~ 20

~ 11

~ 날짜 5/6

업무

3단계 발표 ( 완료 ) 2 단계 발표

중간점검 1

완료

1 단계 발표 ( 제안서 )

완료 아이템 선정

완료 완료

(4)

기존의 서버와 클라이언트 개념이나 공급자와 소비자 개념에서 벗어나 다른 서버를 거치지 않고 개인 컴퓨터끼리 직접 연결하고 검색함으로써 모든 참여자가 공급자인 동시 에 수요자가 되는 형태로 컴퓨터 사이의 직접적 교환을 통한 컴퓨터 리소스의 공유입니다 .

 혼합형 혼합형 p2p (hybrid p2p) : p2p (hybrid p2p) : 어느 정도 서버의 도움을 얻 어서 개인간 접속을 실현하는 방식

- ex) MSN 메신저 , 소리바다

순수 순수 p2p(pure p2p) : p2p(pure p2p) : 클라이언트 상호간에 미리 주소 (I P address) 등의 개인정보를 공유하여 서버 없이 직접 연결하는 방 식 - ex) 냅스터 (MP3 다운 ), 당나귀 (eDonkey)

->

->

앞의 경우에도 접속 및 검색 단계 이후는 뒤의 경우와

앞의 경우에도 접속 및 검색 단계 이후는 뒤의 경우와 동일하게 개인끼리 직접 정보를 공유하고 교환하게 된다

동일하게 개인끼리 직접 정보를 공유하고 교환하게 된다 .

.

2-1) PtoP(Peer To Peer) 방식이란 ?

(5)

• 클라이언트 / 서버 환경에서 서비스 제공자 ( 서버 ) 는 일방적으로 수요자 ( 클라이언트 ) 에 게 제공하는 방식이다 .

• P2P 에서는 하나의 말단 사용자가 서버이자 클라이언트 역할을 한다 . 한군데로 부하가 걸리지 않기 때문에 상당히 무지막지한 작업들도 단순 무식한 방식으로 해결이 가능하다 .

2-2)

Client/Server vs P2P

peer peer

peer

P2P Architecture

distributed bidirectional

Client/Server Architecture

server

client client client

server centric

unidirectional

(6)

2-3) 프로젝트 중간 현황 보고 – 메뉴순서대로 설명

기기 본본 화화 면면

File’

File’

메뉴부분 화면

메뉴부분 화면 IP Address

IP Address

를 를 입력하여

입력하여

상대와 연결가능 상대와 연결가능

(7)

File’

File’

메뉴부분 소스

메뉴부분 소스

2-3) 프로젝트 중간 현황 보고 – 메뉴순서대로 설명

void CContactView::AcceptSock() {

unsigned int PeerPort;

CString PeerAddress;

CNetSocket* NewSock = new CNetSocket();

ListenSocket->Accept(*NewSock);

NewSock->Init();

NewSock->GetPeerName(PeerAddress, PeerPort); // 클라이언트 아이피랑 포트 // 받아오는 함수 SetOnline(IP(PeerAddress), NewSock);

}

소켓의 이 함수를 이용하여 클라이언트 IP 랑 Port 받아오는 함수

(8)

Action’

Action’

메뉴부분 화면

메뉴부분 화면

- Send instant message - Send instant message

부분부분

2-3) 프로젝트 중간 현황 보고 – 메뉴순서대로 설명

(9)

Action’

Action’

메뉴부분 소스

메뉴부분 소스

- Send instant message - Send instant message

부분부분

2-3) 프로젝트 중간 현황 보고 – 메뉴순서대로 설명

void CConversation::OnSend() {

MESSAGE *Msg = new MESSAGE;

m_SendMsg.GetWindowText(Msg->Message, m_SendMsg.GetWindowTextLength() + 1);

if (!strcmp(Msg->Message, "\r\n")) {

m_SendMsg.SetWindowText("");

return;

}

if (!stricmp(Msg->Message, "")) {

m_SendMsg.SetFocus();

return;

}

(10)

Action’

Action’

메뉴부분 소스

메뉴부분 소스

- Send instant message - Send instant message

부분부분

2-3) 프로젝트 중간 현황 보고 – 메뉴순서대로 설명

else // 메시지 전송 {

char buf[1024];

strcpy(buf, Msg->Message);

Msg->To = Contact;

Msg->CallingDialog = this;

PluginsMessageSent(Msg->To, buf);

ReceivedMessage(1, (LPARAM) nstrdup(buf));

strcpy(Msg->Message, buf);

::SendMessage(GetApp()->View->GetSafeHwnd(), WM_SENDTHISMESSAGE, 0, (LPARA M) Msg);

}

m_SendMsg.SetFocus();

m_SendMsg.SetWindowText("");

OnChangeSendmsg();

(11)

Action’

Action’

메뉴부분 화면

메뉴부분 화면

- lock/unlock

- lock/unlock

부분부분

2-3) 프로젝트 중간 현황 보고 – 메뉴순서대로 설명

(12)

Action’

Action’

메뉴부분 소스

메뉴부분 소스

- lock/unlock

- lock/unlock

부분부분

2-3) 프로젝트 중간 현황 보고 – 메뉴순서대로 설명

void CConversation::OnBlock()

{ if (Contact->Flags & CFL_BLOCKED) {

::SendMessage(GetApp()->View->GetSafeHwnd(), WM_BLOCKTHISCONTACT, 0, (LPARAM) Contact);

}else

{ if (Contact->Flags & CFL_TRANSFER)

{ MessageBox("You cannot block a contact with a file transfer in progress", "Block contact",MB_OK|MB_ICONSTOP);

return;

}else

::SendMessage(GetApp()->View->GetSafeHwnd(), WM_BLOCKTHISCONTACT, 1, (LPARA M) Contact);

(13)

Action’

Action’

메뉴부분 화면

메뉴부분 화면

- Send File - Send File

부분부분

2-3) 프로젝트 중간 현황 보고 – 메뉴순서대로 설명

(14)

2-3) 프로젝트 중간 현황 보고 – 메뉴순서대로 설명

Action’

Action’

메뉴부분 소스

메뉴부분 소스

- Send File - Send File

부분부분

bool CFXFileSend::SendFile() // 파일 보내기 {

for (;;) {

unsigned long read;

char buf[PACKET_SIZE];

if (Stop) {

Close();

Thread->TransferFailed();

return false;

}

ReadFile(hFile, buf, PACKET_SIZE, &read, NULL); // 파일 내용 읽어 오기 if (!read) break;

Send(buf, read); // 파일 보내기 if (WSAGetLastError()) return false;

else {

FileLen -= read;

Thread->UpdateTransfered((int)read);

}

if (FileLen <= 0) {

Thread->TransferComplete();

return true;

} }

(15)

Status’

Status’

메뉴부분 화면

메뉴부분 화면

- Away

- Away

부분부분

2-3) 프로젝트 중간 현황 보고 – 메뉴순서대로 설명

(16)

Tools’

Tools’

메뉴부분 화면

메뉴부분 화면

- Options - Options

부분부분

2-3) 프로젝트 중간 현황 보고 – 메뉴순서대로 설명

(17)

Help’

Help’

메뉴부분 화면

메뉴부분 화면

2-3) 프로젝트 중간 현황 보고 – 메뉴순서대로 설명

(18)

3. 프로젝트 진행 중 어려운 점 :

4. 프로젝트 남은 과제 :

지금의 메신저에 GIS 기능을 추가

Visual C++ 공부를 하면서 소스분석과 프로그램작성을 병행하기때문에 진도가 조금 더딘 면이 있음 .

참조

관련 문서

상기 신입생 장학금 외에도 본교는 신입생장학금-재학생장학금-해외연수장학금-대학원진학장학금에 이르는 전주기 장학제도를 운영하고 있으며, 다양한 교외장학금

LoRa® Network Server – Open Source... LoRa® Network Server

약국은 당초 수집 목적과 합리적으로 관련된 범위에서 정보주체에게 불이익이 발생하는지 여부, 암호화 등 안전성 확보에 필요한 조치를 하였는지 여부 등을

(Taekwondo, Weight Lifting Players) (90 min × 6 days/week) Warming

15) 세광음악출판사

[r]

[r]

그러므로 ㉥ ‘김 선생님’은 현재의 담화 상황에 참여하지 않는 인물을 지칭하는 표현이라는 설명은 적절하다.. 그러므로 ㉤이 아버지가 지금까지 은주와 나눈 대화의 화제