코드 설명
Thread 와 Socket Programming 어느 정도 배운 상태에서 나올수 있는 숙제입니다. Blocking 방식으로 스레드를 활용하여 여러명을 받아 메시지를 뿌리는 프로그램입니다. Mutex 을 활용하여 자원을 공유하여 수행합니다. 5명까지 받을수 있도록 하되 그 이상을 받으면 오류를 내는 프로그램 입니다.

참고 - 학교 과제용 코드 입니다. 그러니 이제 검색되므로 이 코드로는 채점되기 쉽지 않을 겁니다. 예제로 쓰시기 바랍니다.

받기
클라이언트


서버


실행화면
사용자 삽입 이미지

코드내용

Posted by 카켈
코드 출처
http://www.sockaddr.com/ExampleSourceCode.html

코드 받기
원본


수정된 코드


수정 내용
CPP 에 맞게 수정
한글화

주의 사항
원래 코드 파일인 C로는 컴파일되는 코드지만 CPP 로 하면 안되는 부분이 있습니다.
GetProcAddress 와 FreeLibrary 인 곳인데, 첫번째 인수가 struct HISTANCE 형이여야 합니다. C 코드는 그냥 void 포인터로 넣어도 문제가 없는데 CPP 에서는 형검사(타입 체킹)을 하기 때문에 문제가 발생합니다.

cannot convert parameter 1 from 'void *' to 'struct HINSTANCE__ *'

(HISTANCE)를 붙여서 강제 형변환(type-casting)을 하면 해결할수 있습니다.
GetProcAddress(hndlIcmp, "IcmpCreateFile"); -> GetProcAddress((HINSTANCE)hndlIcmp, "IcmpCreateFile");
FreeLibrary(hndlIcmp); -> FreeLibrary((HINSTANCE)hndlIcmp);

C 에서는 문제가 없습니다.

실행 화면
사용자 삽입 이미지

코드 내용

Posted by 카켈
원본 출처
http://www.sockaddr.com/ExampleSourceCode.html

코드 받기
- 수정


- 원본


코드 설명
콘솔창에 있는 ping 명령어를 직접 짜는 내용입니다.

실행 화면
사용자 삽입 이미지

코드 내용



추가 정보
rawsocket 정보 -- http://myhome.shinbiro.com/~eaglelee/rawsocket.txt
- 받아 보기


IP -- RFC 791
http://www.faqs.org/rfcs/rfc791.html

ICMP -- RFC 792
http://www.faqs.org/rfcs/rfc792.html



Posted by 카켈
  소개
  코드를 머리 속에서 최대한 외울려고 했는데, 서버에서 bind 부분이랑 accept 이 막혔습니다.
기존에 준 ref 코드와 다른 것은 오류를 최대한 막을려고 했기 때문에 ref 기반에서 출발했지만 약간 다릅니다. 하지만 거의 같습니다. 제가 했던 리포트랑 엄청 짧고 간편해졌습니다;

  이전 TCP 통신에서 응용한 것입니다.

  수행 화면
사용자 삽입 이미지

  코드 받기
수정된 코드


ref 코드(reference - 참조)


  코드 내용
Posted by 카켈

출처 주소
http://www.sockaddr.com/ExampleSourceCode.html

바로 받기
- 원본 코드



- 새로 친 코드


변경 내용 - 약간의 한글화 / CheckMail.h 헤더 부분 내장 (내용이 작아서 넣었음)

수행 내용
-  TCP/IP - POP3 서버에 접속 및 통신하는 내용입니다.
- 수행화면

사용자 삽입 이미지

작업 로그

수행 방법
- 바로 수행되게 Link 부분을 수정했습니다.
#pragma comment (lib,"wsock32.lib")                        // wsock32.lib 를 링크하기
#pragma comment( linker, "/subsystem:windows" )    // WinMain 을 불러 쓰기. int main 을 쓰지                                                                                 않습니다.

- Resouce 부분은 직접 만들어서 추가했습니다. 처음이라 그런지 X 버튼으로 종료가 되지 않습니다.
- 프로젝트에 Resource 을 추가하시고 같이 생성되는 recource.h 파일을 include 하시면 됩니다.
- 워크스페이스(workspace)에 넣어 두시면 많이 편합니다(엉뚱하게 있어도 오류가 나는 경우가 있음) 추가하는 법은 아래 파일 트리에 Add Files in Project 를 누르시던지 Project 메뉴에 Add to Project -> Files 를 누르시면 됩니다.

사용자 삽입 이미지

추가된 리소스 트리와 파일입니다. MFC 를 쓰지 않고, WinAPI 를 썼습니다.

사용자 삽입 이미지

리소스 구조 입니다. 단순합니다;

- password 부분은 보이진 않지만 암호화 되어 전송되지 않기 때문에 외부 유출이 가능하므로 조심하시기 바랍니다.
- POP3 서버를 사용할수 있는 계정으로 접근 합니다.
- 만들어진 코드에서 문제가 시스템 명령 상으로 닫혀지지 않습니다. 아시는 분 댓글 부탁 드립니다. 해킹은 아닌데; 이상하게 X 버튼이 먹히지 않습니다. 그냥 닫기 컨트롤을 누르면 닫힙니다^^;

코드 보기(좀 깁니다.)
Posted by 카켈
출처 주소
http://www.sockaddr.com/ExampleSourceCode.html

바로 받기
- 원본 코드



- 새로 친 코드


변경 내용 - 약간의 한글화 / 0.5% 수정

수행 내용
-  TCP/IP 와 HTTP 사용하여 해당 서버에 접속 해당 파일을 받아 오는 내용(1024Bytes)입니다.
- 수행화면
코드 보기
Posted by 카켈
출처 주소
http://www.sockaddr.com/ExampleSourceCode.html

바로 받기
- 원본 코드


- 새로 친 코드


변경 내용 - 약간의 한글화

수행 내용
-  WinSock의 gethostbyX() 함수로 호스트 이름이나 IP 주소로   hostent 구조체 를 받습니다.
- 수행화면
사용자 삽입 이미지

코드 보기
Posted by 카켈
출처 주소
http://www.sockaddr.com/ExampleSourceCode.html

바로 받기
- 원본 코드


- 새로 친 코드


변경 내용 - 약간의 한글화

코드 보기
- 클라이언트 (winsock_3_1)

- 서버(winsock_3_2)

출력 화면
사용자 삽입 이미지



Posted by 카켈
출처 주소
http://www.sockaddr.com/ExampleSourceCode.html

바로 받기
원본



새로친거



수정 내용
1. 주석/부분 한글화

수행코드
- 클라이언트(winsock_2_1)

- 서버(winsock_2_2)


실행화면
사용자 삽입 이미지

서버 수행시 WinXP SP2 에서 방화벽 경고가 나오면 1차적으로 성공했습니다.

사용자 삽입 이미지

원본 코드와도 완벽하게 맞아 들어갑니다.

사용자 삽입 이미지

물론 새로 만든 코드와도 맞아 들어가죠

사용자 삽입 이미지

포트가 열려 있는걸 보실수 있습니다.
Posted by 카켈
받기
- 변형하지 않은 원본


- Visual Studio 6.0 에서 돌아갈수 있게 약간 손본 판


- 직접 한글화 시켜서 새로 친 판


원본 주소
http://www.sockaddr.com/ExampleSourceCode.html

코드 내용



원판과 변경점
1. 오류코드 및 부분 한글화
2. include 부분 변경

주의점
ws2_32.lib 를 프로젝트 메뉴에서 포함 시키시고 두 C 파일 모두 프로젝트 내에 있어야지 컴파일이 됩니다.

사용자 삽입 이미지




















 
프로젝트에 Link 탭에서 ws2_32.lib 를 꼭 확인해서 넣습니다.(이후 생략)


사용자 삽입 이미지


프로젝트 내에 있지 않으면 컴파일시 오류가 납니다.

출력화면
사용자 삽입 이미지

Posted by 카켈
컴퓨터 통신 연습 중입니다. 이거 작동이 되지 않네요. 리눅스용 PPT 내용을 제가 잘못보고 옮긴거 같습니다. 컴파일은 됩니다.

바로 받기



소스

클라이언트 쪽

서버 쪽


수행 결과
서버에서는 윈도우즈에서 방화벽 경고도 안뜨고 계속 무한 루프를 돌며 클라이언트에서는 문제 없다는 메시지만 보내고 끝을 냅니다.
사용자 삽입 이미지


Posted by 카켈
숙제로 하고 있는데 아직 잘 안됩니다...

코드 받기



원본 주소
http://www.exegesis.uklinux.net/gandalf/winsock/winsock1.htm

원본 코드

한글로 번역한 코드


컴파일시 주의사항

프로젝트 옵션에서 Link 탭, Object/library modules 에 ws2_32.lib 를 추가(Lib 링크 오류)하시고 Project Options 에 보시면 ws2_32.lib /nologo /subsystem:console 로 맞춰 주시야지 Link 오류(WinMain16 링크 오류)가 생기지 않습니다.

사용자 삽입 이미지




















 
실행 결과 : 원본 코드 / 친 코드 모드 작동되지 않았습니다. Finger 서버 자체에 접속이 안되었습니다. 컴파일 환경이 달라서 그런거 같습니다.

사용자 삽입 이미지
사용자 삽입 이미지





Posted by 카켈
이전페이지 1 다음페이지