본문 바로가기

지식/Network

블루투스 구조 블루투스 강좌 ▣ 블루투스(Bluetooth) 프로토콜 스택과 프로파일(Profile) (1)이한욱 (BLUETOOTH Lab. 팀장) 프로토콜(Protocol)이란 디바이스간에 데이터를 송수신하기 위한 하나의 약속을 말한다. 이 프로토 콜은 하나의 통신 시스템의 성능을 결정하는 매우 핵심적인 것이다. 하지만 OSI 7 Layer 나 TCP/IP 등 그 복잡한 계층과 패킷들은 생각만 해도 골치아프게 한다. 블루투스의 프로토콜 역시 그 스택을 보 는 순간 `만만치는 않겠다'는 생각이 들게 한다. 블루투스의 스펙을 크게 두 부분으로 나눈다면 `라디오(Radio) 스펙'과 `프로토콜 스펙'으로 나눌 수 있다. 그러나 실제 블루투스 스펙을 보면 라디오 스펙에 관련된 부분은 100페이지도 되지 않는다. 나 머지 .. 더보기
LibEvent For Windows Bug.. 아래 예제 코드는 간단한 에코 서버다. 스트레스 툴을 만들어서 십여개의 connexction을 생성한 후 일괄 close하면 메모리에러가 발생하면서 프로그램이 종료된다. 원인은 이벤트 구조체가 잘못된듯한다.. free부분을 제거하면 이러한 에러가 사라지기는 하지만 어떻게 그럴수가 있는가 -_-;; 결국 일주일간의 노력은 모두 물거품이 되어버렸다. 일단 멀티 스레드 서버로 프로젝트는 후다닥 진행해야겠다.. struct client { struct event ev_read; struct event ev_write; int id; }; int main(int argc, char **argv) { nametag = 0; timer = 0; Initialize(); Initialize_Net(); event_in.. 더보기
libevent 윈도우 예제 #include #include //#include // for unix #include //#include // for unix #include #include #include //#include // for unix #include #include #include #define SERV_PORT 8888 struct client { struct event ev_read; }; int setnonblock(int fd) { /* // for unix int flags; flags = fcntl(fd, F_GETFL); if(flags < 0) { return flags; } flags |= O_NONBLOCK; if(fcntl(fd, F_SETFL, flags) < 0) { return -1; } */.. 더보기
LibEvent for Windows 수많은 서버 입출력 모델중에 LibEvent란걸 선택하였다. 단지 누가 알려줘서!! 장점은 unix계열의 입출력 모델인 epoll 을 windows에서 사용할 수 있게 해준것이며 이것은 windows 와 linux 두 os에서 모두 동작하는 서버를 만들어야하는 나로써는 하나의 일을 줄일 수 있는 선택인것이다. 자 먼저 소스를 다운받아보자 http://www.monkey.org/~provos/libevent/ 요기 가면 소스를 다운받을 수 있다. 하지만 windows 사용자라면 소스를 다운받아서는 안된다. 열라 다운받아서 VS2005로 열라 돌렸는대 컴파일도 안되더라... 도통 개발 환경을 알 수 가 없다더라... 메인 화면 좌측 소스 list 맨아래 화면에 보면 Libevent has been relea.. 더보기
UTF-8 UTF-8은, Unicode Transformaion Format-8의 줄인 말이다. 즉, ISO 10646 / Unicode에서 정의한 문자 집합을 8비트 바이트 스트림으로 인코딩하는 규약이다. UTF-8 [UTF-8]의 용례 및 다른 정보들 TeX과 [UTF-8] [UTF-8] 문서의 편집 [UTF-8] 편집기를 이용한 LaTeX/[Lambda] 작업에서 BOM 문제 BOM, Byte Order Mark 에디터와 BOM 대화 UTF-8 UTF-8은 모든 Unicode 문자를 1바이트에서 4바이트까지 가변폭 바이트 스트림으로 인코딩한다. 6바이트가 아님. ISO JTC1/SC2/WG2는 공식적으로 ISO 10646에서 UTF-16으로 표현 가능한 상한선인 U+10FFFF를 넘는 범위에 문자를 배정하지 .. 더보기
URL 최대길이 원문: http://support.microsoft.com/kb/q208427/ Internet Explorer 에서 URL 의 최대 길이는 2,083 이다. 요약 Microsoft Internet Explorer(이하 IE)는 최대 2,083의 URL(Uniform Resource Locator) 길이를 갖는다. IE는 또한 최대 2,048의 경로길이를 갖는다. 이 제한은 POST request와 GET request URLs 양쪽에 모두 적용된다. 만약 GET method를 사용한다면 실제 경로의 길이를 뺀 최대 2,048 로 제한되어야 한다. 그러나 POST method는 name/value 쌍에 대한 URL 의 크기에 제한되지 않는다. 이들 쌍은 URL이 아닌 헤더에서 전송된다. RFC 2616,.. 더보기
zope 참조 : http://kldp.org/KoreanDoc/html/Zope_Install-KLDP/Zope_Install-KLDP.html 거 이름 참 .. 더보기
Twisted Network Programming Essentials (Paperback) Twisted Network Programming Essentials (Paperback) Abe Fettig 지음/OReilly(오라일리) Twisted는 Python 에서 Event/비동기 기반의 네트웍 프로그래램을 쉽게 작성하도록 도와줍니다. 특히 수천명의 client 가 접속하는 안정적인 서버를 비교적 낮은 개발 비용으로 작성할 수 있습니다. 뿐만아니라 TCP, UDP, SSL/TLS, multicast, Unix sockets 과 많은 프로토콜(HTTP, NNTP, POP3 IMAP, SSH, IRC, FTP, Proxy 등)을 이미 구현을 해 두었기 때문에, 널리 알려진 프로토콜들을 쉽게 이용하거나 확장할 수 있습니다. 몇몇 회사들이 메신저나, 특정 사이트의 접속을 막아둔 경우, 외부에 있는 .. 더보기
JSON JSON Table of Contents JSON은 무엇인가? JSON 데이타 구조 JSON과 자바기술 클라이언트와 서버사이드 양쪽에서 JSON 데이타를 주고 받는 방법 리소스들 참고문헌 JSON은 무엇인가? JSON은 무엇인가? 경량의 데이타 교환 포맷이다. > XML과 비교한다. 간단한 포맷 > 사람들을 위해 읽고 쓰기가 쉽다. > 기계들을 위해 분석과 생성이 쉽다. JSON은 텍스트 포맷이다. > 언어에 독립적으로 프로그래밍된다. > 프로그래머들에게 잘 알려진 C,C++,C#,Java,JavaScript,Perl,Pyton을 포함하는 C와 유사한 언어로 모여서 사용된다. XML을 넘어 왜 JSON인가? on-the-wire(선을 통한) 데이타 포맷인 XML보다 가볍고 빠르다. JSON 오브젝트는 X.. 더보기
SOAP (Symbolic Optimal Assembly Program, or Simple Object Access Protocol) ■ SOAP (Simple Object Access Protocol)이란 무엇인가? SOAP이란 것은 무엇일까? 검색엔진에서 SOAP을 검색하면 무슨 비누, 향수, 샴푸등등... 이딴 것들만 검색된다. 그럼 SOAP은 세제란 뜻인가? 절대 그럴리 없다.. 이 강좌가 무슨 “빨래 이런 세제를 쓰면 살균 소독까지.. ” 강좌도 아니고 무슨 비누란 말인가? 아직은 SOAP이 표준화 과정에 있고 따라서 많은 자료들이 만들어지지 못해서 이런 일이 일어나는 것 뿐이다.. "(,. )a SOAP은 XML과 HTTP 통신을 기반으로 하여 네트워크 상에 존재하는 각종 컴포넌트간의 호출을 효율적으로 실현하기 위한 방법을 제시하는 규약이다. 말이 좀 어렵다.. 쉽게 말하면 네트워크 상에서 Client와 Service Pro.. 더보기