임베디드/리눅스(Linux) 23

리눅스 소켓 프로그래밍 Linux socket programming

개요서버와 클라이언트는 동작이 다르다.서버 : 클라이언트가 접속할 수 있도록 준비(Port, IP), 그리고 클라이언트의 연결을 기다린다.클라이언트 : 서버의 IP와 Port를 이용해 접속하며, 연결이 되었을 경우 동작을 한다.  서버클라이언트IP서버 소켓이 동작하는 컴퓨터의 IP 주소통신을 원하는 원격지 PC의 IP 주소Port소켓이 “위치 할” 포트 번호소켓이 “위치한” 포트 번호  TCP 기반 서버 소켓 동작 순서는 다음과 같다.socket() 소켓 생성bind() 소켓에 주소 할당listen() 클라이언트 연결 요청 대기accept() 클라이언트 연결 승인read() / write() 통신close() 소켓 닫기 TCP 기반 클라이언트 소켓 동작 순서는 다음과 같다.socket() 소켓 생성con..

리눅스 소켓 통신 Linux socket

개요Socket을 이용해 서버-클라이언트 간 데이터를 주고 받는 양방향 연결 지향성 통신을 말한다. Socket을 이용해 PC 와 PC 끼리 데이터를 주고 받을때 TCP/IP프로토콜을 사용하여 통신한다.한쪽은 서버이고 나머지 한 쪽은 클라이언트가 되며 통신 방식은 Full-Duplex이다.두 PC는 네트워크로 연결 되어 있어야 한다.  SocketTCP/IP 기반 네트워크 통신에서 데이터 송수신의 마지막 접점이다.데이터가 통과하는 마지막 관문 전기 소켓을 예로 든다면 발전소에서 생성한 전기가 가정으로 도착한 마지막 접점으로 볼 수 있다.소켓의 내부구조는 어떻게 이루어져 있는지 자세히 모르지만, 콘센트를 꽂으면 전기를 쓸 수 있다. 소켓은 인터페이스이다, Socket이라는 소프트웨어 인터페이스가 존재하며,..

리눅스 네트워크 이더넷 Linux network ethernet

개요이더넷은 옛날 방식이고, 인터넷은 최근 방식일까?정답은 X이다, 이더넷과 인터넷은 다른 개념으로 서로 연결될 수도, 아닐 수도 있다.보통 규모가 작은 LAN에서는 이더넷 통신을 한다.이더넷은 MAC 주소로 통신을 하며, 허브가 IP를 부여하는 방식이다. 인터넷은 TCP / IP 프로토콜을 사용하여 IP주소 기반 통신을 하지만이더넷은 CSMA / CD 프로토콜을 사용하여 MAC주소 기반 통신을 한다. 이와 같은 이유로 이더넷 카드, 이더넷 케이블과 같은 이더넷을 위한 장비가 따로 존재한다.사실상 LAN 규모의 대표적인 통신이 표준이므로, 이더넷 카드 및 이더넷 케이블을 랜카드, 랜케이블이라고 부른다.  CSMA / CDLAN에서 통신을 할때는 연결되어 있는 모든 노드에게 데이터를 보낸다.5개의 장치 A..

리눅스 네트워크 기초 Linux network

개요네트워크 프로그래밍은 TCP/IP 소켓 통신을 이용한 개발이다.모든 것은 TCP/IP 소켓 통신 하나로 시작해서 끝이 난다. 네트워크 분야는 H/W와의 밀접한 관련이 있다.그래서 S/W 개발자일지라도, 네트워크 장비 관련 지식이 필요하다. TCP/IP 소켓 통신을 이용한 멀티 쓰레드 기반 채팅 Application 을 개발하는 실습을 진행한다.  네트워크노드와 링크로 구성한 데이터 교환망이다.노드는 컴퓨터 장치들을 의미하며, 링크는 연결을 의미한다. 컴퓨터나 다른 장치들을 연결하여 데이터를 주고 받을 수 있는 구조를 의미한다. 알고리즘에서 그래프 문제를 풀땐 노드끼리 연결할땐 간선이 필요한 것을 알 수 있다.노드는 랜카드, 간선은 케이블이라고 생각하면 케이블은 양방향 간선 이기 때문에 2대의 랜카드와..

리눅스 심볼릭 링크 Linux Symbolic link

개요심볼릭 링크에 대해 간단히 학습한다.심볼릭 링크를 이용해 나만의 명령어를 제작한다.  심볼릭 링크윈도우의 바로가기 파일을 의미한다.  심볼릭 링크 만들기1. ~/test7 디렉토리 생성mkdir ~/test7cd ~/test7echo ABC > btsvi bts./bts  2. bts 의 바로가기 파일을 만든다.ln –s [원본파일명] [복사본파일명]ln –s ./bts ./bbqls –al bbq의 파일 타입이 l, bbq -> bts로 명시된 것을 확인할 수 있다.  심볼릭 링크 특징바로가기 파일을 수정하면 원본에 영향을 미친다.echo hifaker >> bbqcat ./bbqcat ./bts bbq 파일에 hifaker라는 문자열을 추가했다.하지만 bbq뿐만 아니라 bts 파일에도 hifake..

리눅스 다양한 쉘 명령어 Linux Shell Command

개요가장 자주 사용되는 shell 명령어들을 학습한다.  echo echo [텍스트] 텍스트를 화면에 출력한다. 연속된 띄워쓰기를 하나만 인정한다. 문자 그대로 출력한다.(")가 쉘에서 문자열을 감싸는 역할을 하기 때문에 무시되었다.(#)가 쉘에서 주석 역할을 하기 때문에 무시되었다.  date현재 시간을 확인할 수 있다.  uptime현재시간, 시스템 시간과 커널이 부팅 된 후(up) 지난 시간 을 나타낸다.그 외, 접속자 수와 CPU 시스템 부하율을 나타낸다.  dmesg커널의 로그 메시지를 출력하는 명령어부팅 이후 일어난 모든 커널의 로그를 시간 순으로 출력한다.   history입력한 모든 명령어가 출력된다.![숫자] 를 이용해 해당 번호의 명령어를 다시 실행할 수 있다.   .c파일에서 shel..

리눅스 쉘 파일 관리 명령어 Linux Shell

개요파일 관리 명령어를 학습하여 파일을 관리하는 방법을 숙달한다.  cat cat [파일명] 파일 내용을 출력하는 명령어ex) 터미널에 cat /proc/cpuinfo를 입력하면 cpu 정보를 확인할 수 있다. 내용을 파일로 저장하는 방법 > : 파일에 내용 쓰기>> : 파일에 내용 덮어 쓰기cat /proc/cpuinfo > abccat /proc/meminfo >> abc  findfind [경로] -name [파일명] –type [옵션] 파일을 찾는 명령어경로에 “/” 를 넣으면 모든 곳에서 검색 → sudo 권한 필요 파일만 찾기 : find [경로] –name “파일명” –type f디렉토리만 찾기 : find [경로] -name “파일명” –type d   grepgrep [텍스트]문자열 검색..

리눅스 빌드 시스템(5) Makefile 제작 Linux Makefile

목차리눅스 빌드 시스템(1) gcc Linux Build System gcc리눅스 빌드 시스템(2) make Linux Build System make리눅스 빌드 시스템(3) cmake Linux Build System cmake리눅스 빌드 시스템(4) make 문법 개요Makefile 을 단계별로 작성하며 상세 작성 법을 배우고 다른 사람이 작성한 Makefile 을 이해할 수 있도록 숙달해야 한다.  Build Home 디렉토리에 test6 디렉토리를 생성하고 c, h, Makefile을 생성해 준다.  이제 각 함수의 함수 파일에 코드를 작성해 준다.  func1.c#include "common.h"void func1(){ printf("Func1 TEST START\n"); printf("====..

리눅스 빌드 시스템(4) make 문법

목차리눅스 빌드 시스템(1) gcc Linux Build System gcc리눅스 빌드 시스템(2) make Linux Build System make리눅스 빌드 시스템(3) cmake Linux Build System cmake  개요makefile을 하기 전 간단하게 make 문법에 대해 소개한다.make는 표준화된 문법을 사용한다. Makefile 작성을 도와주는 cmake도 있지만, 다른 사람이 작성한 Makefile을 수정해야 할 일도 있다.  예제새 디렉토리를 생성해 준 뒤 Makefile 파일을 만들어 주고 내용을 작성해 준다.  Target 타겟 목표 파일 이름, 빌드하려는 최종 결과물1개 이상의 Target 이 있어야 한다.comment 를 실행한다. ( 반드시 Tab 들여쓰기 해야 한다..

리눅스 빌드 시스템(3) cmake Linux Build System cmake

목차리눅스 빌드 시스템(1) gcc Linux Build System gcc리눅스 빌드 시스템(2) make Linux Build System make  CMake크로스 플랫폼 빌드 자동화 도구소프트웨어 프로젝트를 빌드, 테스트 및 패키지하는 용도CMake 가 빌드를 직접 해주는 것은 아니다.Makefile을 자동으로 생성해주는 Build SystemCMake 설치sudo apt install g++ cmake -y   CMake 사용하기  test3 디렉토리를 test4 이름의 디렉토리로 복사해 준다.test4 디렉토리로 이동한 후 이전에 다루었던 make 파일인 Makefile을 삭제해 준다.CMakeLists.txt 파일을 작성한 뒤 저장해 준다. CMakeLists.txtcmake_minimum_..

728x90