Busan IT/WinAPI2015. 12. 1. 17:36

==================================Outline====================================

winsock 채팅 프로그램

----------------------------------------------------------------------------

 

linux환경에 만들었던 다중 파일 입출력 채팅 프로그램을 참고하여 winsock 서버/클라이언트 프로그램을 만들어보자.

 


 

진행 중...





반응형

'Busan IT > WinAPI' 카테고리의 다른 글

멀티쓰레드  (0) 2015.12.02
winsock을 사용한 서버/클라이언트 프로그램  (0) 2015.11.30
히스토그램 , 알파값  (0) 2015.11.25
WIN32API로 BMP뷰어  (0) 2015.11.22
20151118 윤재희 #5. 그래픽 & 게임  (0) 2015.11.18
Posted by newind2000
Busan IT/ARM Assembly2015. 12. 1. 13:39

==================================Outline====================================

컴파일에 대한 단상

ARM ADS 설치

컴파일 공장 이야기

----------------------------------------------------------------------------

 

컴파일에 대한 단상

 

01로 이루어진 코드를 문자를 도입하여 표시하게 되어 사람이 코드를 작성하는데 용이하게 되었다.

 

 

어셈블리 언어는 CPU에 따라 문법이 달라진다. 호환성의 한계를 해결하기 위해서 고급 언어인 CC++이 등장하게 되었다.

 

 

CPU에 자유롭다 - high level language

CPU에 종속된다 - low level language

 

C로 작성 -> Assembly 언어로 변환 -> cpu가 해석할 수 있는 bit pattern으로 변환

 

 

메모리는 플립플롭의 회로를 사용하여 데이터를 보존한다.

 

cross compile이란 프로그램을 고사양 개발 PC에서 컴파일 후 프로그램이 사용될 CPU에 이식하는 것을 말한다.

 

ARM ADS 설치

 

공유 폴더에 가서 ARM ADS(ARM Developer Suite) 1.2를 가져온다. setup.exe를 눌러 실행한다.

 

** 굳이 설명이 없는 것은 변동 없이 다음을 눌러주면 된다.

 





 

 

보안패치 업데이트

 



예제 파일 ‘OK7S256ads’은 인터넷 검색하여 사용한다. 압축을 풀어 Program File에서 ADS가 설치된 폴더 안에 잘라 넣는다.

 

IDE를 실행하고 예제 파일을 불러들인다.

 



 

그룹을 생성한다.

 






 

 

‘Cstarup_SAM7.c‘ ’retarget.c‘ 도 같은 방식으로 등록한다.



 

이제 예제 파일을 추가한다.




 

새로운 프로젝트 환경 설정










 

코딩 시 코드의 탭 간격 조절

 





 

주소가 달라 오류가 난다. 주소를 수정해보자.

 

 

베이스 주소를 '0x00000000'로 수정하니 컴파일이 됐다. 하지만 warning이 뜬다. entry point가 없다는 메시지이다.

 

다시 alt + F7을 눌러 디버그 세팅으로 간다. Image Entry Point창에 'entry'를 입력한다.

 

 

 

다시 컴파일을 해보자.

 

 

잘된다.

 

 

 

 

Atmel사 홈페이지로 간다.

 




//MCU를 구입할 때 evolution kit를 사야한다. 아니면 CPU 달랑 하나 구입하는 꼴이 된다.

 

컴파일 공장 이야기

 

 

 

//전처리 과정이 빠져있다.

 

elfbin파일은 둘 다 기계어이다. 실제로 동작이 가능한 파일이 bin파일이다.

 

실행 파일 구조는 윈도우는 pe계열 리눅스는 elf계열이다. 임베디드 계열은 대부분 elf계열이다.

 

컴파일 과정을 그림으로 표시하면 다음과 같다. 





 

 

 

반응형
Posted by newind2000
Busan IT/WinAPI2015. 11. 30. 22:27

==================================Outline====================================

winsock을 사용한 서버/클라이언트 프로그램

----------------------------------------------------------------------------

 

소켓의 개념은 어느 운영체제에서나 같다. MFC에서도 Win32의 소켓을 사용하여 네트워크 환경을 만든다.


winsock을 사용한 서버 클라이언트 프로그램을 만들어보자. console 환경에서 winsock을 사용하기 위해서 library를 추가해주어야 한다.

 

#pragma comment(lib, "ws2_32.lib")

 

winsock을 사용해주기 위해서는 WSAStartup 함수를 사용해야 한다.

 


첫번째 인자인 버젼의 정보를 넣을 때 매크로 'MAKEWORD' 를 사용한다. 상위 바이트와 하위 바이트에 버전을 입력한다. 

사용 후에는 반드시 WSACleanup 함수를 사용하여 종료해준다.


void WSACleanup(void)

 

socket함수로 소켓을 생성해준다.

 

 

소켓 생성 제대롤 생성 되었는지 에러처리를 통하여 소켓을 걸러낸 후 bind함수를 위해 sockaddr구조체를 설정해준다. AF_INET을 사용할 경우에는 sockaddr_in구조체이다.


 

// in_addr의 인자는 하나뿐임으로 구조체인 것을 개의치 않고 주소를 바로 넣어주면 된다.

 


 

소켓 함수를 사용하여 서버와 네트워크를 프로그램은 이미 작성해 보았음으로 joinc의 예제 소스를 참조하여 프로그램을 작성해보자.

 

  


소스에 주석으로 설명해 놓았으니 참고한다.


/*** 소스 ***/



client.c


go.bat


server.c



 

반응형

'Busan IT > WinAPI' 카테고리의 다른 글

멀티쓰레드  (0) 2015.12.02
winsock 채팅 프로그램  (0) 2015.12.01
히스토그램 , 알파값  (0) 2015.11.25
WIN32API로 BMP뷰어  (0) 2015.11.22
20151118 윤재희 #5. 그래픽 & 게임  (0) 2015.11.18
Posted by newind2000