728x90

Computer Science 404

Network] TCP 소켓 데이터 전송 특징

TCP 헤더(IPv4) 바이트 스트림을 Segment 단위로 나눔Segment : TCP를 이용하여 두 종단 호스트 간에 전달되는 데이터 단위 송신지 포트번호16bit수신지 포트 번호16bit순서번호(Sequence Number)32bit확인 응답 번호(Acknowledgement Number)32bit헤더 길이4bit예약6biturgackpshrstsynfinWindow16bit검사 합16bit긴급 포인터(Urgent Pointer)16bit옵션 & 패딩(Padding) 1. 송/수신지 포트 번호 16bitsegment 전송하는 host에 있는 응용프로그램의 포트 번호를 의미 2. 순서 번호(SEQ) 32bitsegment에 포함된 데이터의 첫 번째 바이트에 부여된 32비트 부호 없는 번호를 의미수신지..

Network] TCP 기반 클라이언트 프로그램 주요 함수

connect Function 서버와 통신을 위한 연결(세션)을 생성연결할 서버의 주소 정보를 설정해야 함 int connect(int sockfd, const struct sockaddr* addr, socklen_t addrlen);return 0(success), -1(fail) - sockfd : 서버에 연결 요청하기 위한 클라이언트 소켓 디스크립터- addr : 연결할 서버의 주소 정보가 설정된 구조체- addrlen : addr의 크기 read Function 전송된 메세지를 수신하기 위해 사용LINUX에서는 소켓이나 파일을 동일한 타입의 디스크립터로 정의하므로 데이터 수신할 때 사용 가능 ssize_t read(int fd, void* buf, size_t nbytes);성공 : 읽은 데이터..

Network] TCP 기반 서버 프로그램 주요 함수

bind Function listen function에서 사용할 server socket의 서버 주소 정보 설정서버 주소 정보를 두 번째 인자 addr을 통해 전달 가능 int bind(int sockfd, const struct sockaddr* addr, socklen_t addrlen);return 0(success) or 1(fail) - sockfd : 주소를 할당할 서버 소켓 디스크립터- addr : 서버 주소 정보를 담은 구조체(IP Address, Port Number, etc..) listen Function 클라이언트의 연결 요청을 수신하기 위한 서버 소켓 지정'연결 요청 대기 큐' 생성 int listen(int sockfd, int backlog);return 0(success) o..

Network] IPv4, IPv6

IPv4 32bit 주소체계Network ID와 Host ID로 구성.현재는 다양한 기기가 고유 주소가 필요하여 IPv6로 전환하고 있음Network ID와 Host ID에 할당되는 비트 길이에 따라 Class 구분(A, B, C, D, E; Class E는 예약되어 사용 불가)일부 IP 주소는 특수목적을 위해 예약되어 있음 - 서브넷 많은 기기를 연결할 수 있는 네트워크를 다수의 작은 네트워크로 분할일반적으로 Class A, B 네트워크 대상분리된 네트워크는 별도의 망이 되어 다른 곳에서 이용 가능 Network ID와 서브넷 번호에 해당하는 부분은 1로 마스크를 구성Host ID에 해당하는 부분은 0으로 구성 Internet Protocol Version 4를 선택해 설정 가능 IPv6 128bit ..

Network] 소켓 주소 구조

1234typedef struct sockaddr { u_short sa_family; char sa_data[14];} SOCKADDR;cs sa_family주소 체계를 나타내는 16bit valueex) TCP/IP Protocol, AF_INET or AF_INET6 sa_data해당 주소 체계에서 사용할 주소 정보ex) TCP/IP Protocol IP Address and Port TCP/IP -> SOCKADDR_IN{} or SOCKADDR_IN6{}IrDa -> SOCKADDR_IRDA{} IPv4 123456789101112131415161718typedef struct sockaddr_in{ short sin_family; u_short sin_port; struct in_addr si..

Arduino] 7세그먼트 사용하기

세그먼트 자체에 대한 이해도 필요했고, 캐소드식과 애노드식에 대한 이해도 필요해서 꽤 오래 걸렸습니다. 어젯밤에 진짜 삽질해가지고, 작동은 커녕 아두이노 기판을 못 쓸 지경으로 만들 뻔했습니다. 회로에 대해서 최소한의 지식이 있다고 생각은 했는데, 정말 만행을 저질러서.. 새벽에 일어나서 회로를 보고 다시 적용해서 작동하는데 성공했습니다. 지금 당장 아두이노를 해보면서 느끼는 건 코딩쪽에서의 애로사항보다는 회로쪽에서 애로사항이 더 많습니다. 최소한의 지식마저도 없이 접근하면 합선이 발생해 기판이 고장나는 것과 같은 문제가 발생하겠구나 싶었습니다. 저도 배우는 입장이라, 직접 해보면서 많이 배웁니다. 기껏해봐야 LED, 부저, 세그먼트, 온도센서 이 네 가지밖에 안 건드렸는데도, 꽤나 배운게 많습니다. 1..

Arduino] 부저 사용

부저를 0.05초 가량 울리고, 동시에 그 시간 동안 LED도 점등한 뒤, 나머지 0.95초에는 LED와 부저가 작동하지 않는 소스입니다. 사실상 1초에 1회 부저가 울린다고 보면 되고, 그에 따라 LED도 같이 깜빡거립니다. 1234567891011121314151617#define BUZ 11#define LED 8void setup() { // put your setup code here, to run once: pinMode(BUZ,OUTPUT); pinMode(LED,OUTPUT);} void loop() { // put your main code here, to run repeatedly: digitalWrite(BUZ,HIGH); digitalWrite(LED,HIGH); delay(50);..

Arduino] LM35DZ 센서를 이용한 온도 측정

123456789101112131415161718int val=0;float temp=0;void setup(){ Serial.begin(9600); analogReference(INTERNAL);} void loop(){ val=analogRead(0); val=map(val,0,1023,0,1100); temp=(float)val/10; Serial.print(temp,1); Serial.println("C"); delay(1000);} cs LM35, TMP36 등 온도를 측정하는 센서는 여러가지 있습니다.특히 LM35DZ의 경우 1도의 변화당 10mV의 전압 변화가 있는 전압출력형입니다.온도 측정이 비교적 쉽다는 장점이 있습니다만, 오차가 2도가량 존재해, 정확도 측면에서는조금 떨어진다고 보시면 ..

Arduino] 시리얼 통신을 이용한 LED 제어

약 1주일 전에 구매한 아두이노 키트입니다.필요한 센서만 부분부분 구매할까, 아니면 이렇게 구성된 것으로 살까 고민하던 찰나에,커뮤니티에서 올라오는 예제와 여러가지 입출력방식,함수를 경험하는데 나쁠 것도 없다고 생각해서 키트를 샀습니다.이 키트에는 아두이노 우노 R3보드가 동봉되어 있는데,그것과는 별개로 보드 자체를 하나 더 샀는데,이건 자주 애용하던 인터넷 쇼핑몰에서 포인트로만 구매해뒀습니다.대략 이렇게 사는데 6만원정도 쓴 것 같네요. 잡소리는 이쯤 해두고,오늘 선보일 코드는 시리얼통신을 이용해서LED를 점멸을 제어하는 소스를 아두이노에 업로딩했습니다. 12345678910111213141516171819202122232425262728293031323334353637383940414243444546..

Algorithm] 정렬 알고리즘 시각자료 동영상

selection sort, insertion sort, quick sort, merge sort, heap sort, radix sort (LSD), radix sort (MSD), std::sort (intro sort), std::stable_sort (adaptive merge sort), shell sort, bubble sort, cocktail shaker sort, gnome sort, bitonic sort and bogo sort 선택정렬, 삽입정렬, 퀵정렬, 합병정렬, 힙정렬, 기수정렬(LSD, MSD),std::sort함수(인트로 정렬 적용), std::stable_sort(합병정렬 적용),쉘 정렬, 거품정렬, 칵테일 정렬, 난쟁이 정렬, Bitonic 정렬, bogo 정렬 시청각을..

728x90