분류 전체보기

· 개발/C
미션 1. 실시간으로 받은 내용을 output 해보자 2. buffer 크기 이상으로 받은 내용을 output 해보자 (hint : 무조건 한번에 출력해야하는건 아니다. 나눠서 출력해도 무방) 1번은 굉장히 쉽다. 버퍼가 일을 잘해주기 때문에 그 이상의 입력값도 알아서 인식해서 뱉어준다. 그런데 어려운건 [str의 끝은 0이어야 한다]는 규칙을 지키며 깔끔하게 짜는게 어려웠다. 전체 코드는 다음과 같다. 6으로 제한을 걸어둔 상태로 그 이상도 깔끔하게 나오게 해보기 위해 노력해보았다. #include #include #include #include #include #include #include #include #include #define MSG_MAX 6 #define BUF_LEN 6 int mai..
· CS
아스키코드 아스키코드는 '한 문자'를 1byte 즉 7bit 에 담아내는 규칙이다. 아스키코드는 ASCII로 American Standard Code for Information Interchange 의 약자이다. 이를테면 53도 두 문자기에 0x35 0x32 로 표현이 된다. 문자를 나타내는 규칙에 아스키코드만 있는건 아니다. 이를테면 Base64는 6bit 를 한문자에 담아낸 규칙이고, bytetohex는 4bit 를 한 문자에 담아내는 규칙이다. 아래에서 설명할 확장아스키코드는 한 문자를 8bit 에 담아내는 규칙이고, unicode 는 2byte 즉 16bit 를 한 문자에 담아내는 규칙이다. C/C++에서 char 가 1byte(8bit) 인 것으로 기억하면 된다. c언어는 언어의 특성상 메모리..
· 개발/C
scanf() %s 는 스페이스를 끝으로 인식해 그 다음 0을 넣어 문자열을 종결시킨다. stdin/stdout을 거쳐 동작. char str[16]; printf("msg : %s", str); scanf("result is %s", str); //scanf("%[^;]s", str); 이러면 끝을 ;로 인식 fgets() 스페이스를 극복하기 위해 나왔다. stdout/stdin buffer flow로 배열포인터에 size-1개씩 \n까지 포함해 저장한다. fputs("메시지를 입력하세요 : ", stdout); fgets(message, 512, stdin); fscanf()/fprintf() file buffer로 동작 sscanf()/sprintf() string buffer로 동작. https:..
· CS
허브 여러 컴퓨터를 연결해 네트워크를 만들어주는 장치로 데이터패킷 수령시 연결된 모든 장치에게 보내는 장치 허브의 단점 단순 분배 중계기로 IP할당 불가. 연결된 모든 장치에 패킷을 뿌리기에 데이터 전송 대역 분리해야함. 허브에 연결된 네트워크에서 하나의 디바이스에서 전송된 데이터프레임을 허브로 연결된 모든 디바이스에게 모두 전송하는 플러딩 즉 충돌이 많아짐. 보안이 안좋아 요즘 잘 안씀. 허브의 종류 L1더미허브 멀티포트 리피터 전기적 신호를 증폭시켜 들어온 데이터 재전송. LAN 최대 전송길이 연장, 접속 가능 창비 많아짐. 스위치 연결된 장치들의 IP, MAC주소 테이블을 갖고 원하는 목적지에 데이터패킷을 전송하는 장치. 라우터가 Internet 에서 길을 찾아 준다면 스위치는 LAN 에서 길을 찾..
· CS
1계층. 물리계층. 전기적, 기계적, 기능적 특성으로 OSI(Open Systems Interconnection) 모델은 데이터가 네트워크를 통해 전송되는 방식을 설명하는 개념적 모델입니다. 각각 특정 기능을 가진 7개의 레이어로 구성됩니다. 레이어는 다음과 같습니다. 물리적 계층: 구리 또는 광섬유 케이블과 같은 물리적 매체를 통해 원시 데이터를 전송합니다. 데이터 링크 계층: 이더넷 케이블과 같은 물리적 링크를 통해 안정적인 데이터 전송을 제공합니다. 네트워크 계층: 서로 다른 네트워크 간에 데이터를 라우팅하고 주소 지정 및 패킷 조각화를 처리합니다. 전송 계층: 엔드포인트 간에 안정적이고 효율적인 데이터 전달을 제공하고 오류 복구 및 흐름 제어를 담당합니다. 세션 계층: 서로 다른 네트워크 장치에 ..
· CS
LAN/MAN/WAN LAN : Local Area Network MAN : Metropolitan Area Network WAN : Wide Are Network 지역 통신망을 의미한다. 뒤로 갈수록 넓은 개념. LAN은 동일한 서브넷마스크를 사용하는가? 가 기준이 된다. 같은 IP 대역을 사용하며 192.168.1.X/24 를 사용한다면 LAN에 포함! https://yeon-lee.tistory.com/71 WAN의 기준은 근거리 네트워크를 벗어나 라우터간 통신을 해야하는지 여부로 정한다. 왜 이런식으로 나누는가? 트래픽을 최소화하기 위해서, 다시말해 교통정리를 위해 그렇다. 쉽게 설명하자면 동네 마트에 갈때 경부고속도로를 탈 필요가 없게 만들기 위해서이다. IP추적이란 IP 추적은 IP(인터넷 프..
· CS
TCP Transmission Control Protocol 데이터 전송을 위한 연결을 만드는데 집중하는 연결 지향 프로토콜. 포트를 사용하는 프로토콜인 전송계층프로토콜의 한 종류이다. IP Internet Protocol 인터넷에 연결되어 있는 모든 장치들을 식별할 수 있도록 각각 장비에게 부여하는 고유주소 (스마트폰, 서버, 컴퓨터,,,) IPv4/IPv6 IPv4, IPv6 가 있는데 우리가 쓰는 255.255.255.255(32비트) 규격은 IPv4 규격.(8비트/32비트) IPv6는 128비트로 확장하여 콜론으로 구분하고, 2001:0DB8:1000:0000:0000:0000:1111:2222 같이 쓴다 (16비트/128비트) 고정IP/유동IP 고정IP, 유동IP가 있는데 고정은 말그대로 한번 ..
· 개발/C
미션 1. 고객의 요청을 대기중인 서버를 만들어보자 (hint. 고객의 요청을 복사하는 서버/고객 코드) https://koyo.kr/post/c-socket-example/ 이 프로젝트를 따라해보았당 block 기다리는 행위. 어디까지 진행하고 클라이언트가 접속할때까지 기다린다? 그렇다면 블락된 것. socket() 소켓은 일종의 통신창구. 객체 내 통신의 종단점. 이 서버가 다른 서버와 통신하고 싶다면 개설하는 통로. int socket(int domain, int type, int protocol); 입력 domain : 인터넷 프로토콜 결정 type : 데이터 전송 프로토콜 결정. protocol : 소켓에 특별한 프로토콜이 필요할 경우. '소통 도메인'을 지정. 출력 새 소켓의 파일디스크립터. ..
· 개발/Java
eclipse 상에서 직접 컴파일 eclipse 에서는 저장과 실행 과정에서 이를 자동으로 처리해주어서 편리함을 느끼고 있지만, 이클립스 상에서 돌아가는 것이 궁금하다면 직접 손으로 컴파일을 해보면 된다. 우선 나는 java2 라는 파일 안에서 selfcompile.java 라는 것을 cmd 창에서 실행을 해보고자 한다. 그렇다면 해당 디렉토리로 이동해서 컴파일을 하고, java 를 실행하면 된다. src와 bin의 차이점 src 는 여러분이 코딩을 하는 소스 코드이다. bin 은 compile 된 소스코드의 class 가 위치하는 곳이다. "src" 폴더에는 일반적으로 프로젝트를 구성하는 모든 Java 클래스 및 패키지를 포함하여 프로젝트의 소스 코드가 포함된다. 코드가 컴파일되면 결과 ".class"..
· 개발/Java
다른 패키지에 class가 들어있는 상황 네가 실행하고자 하는 파일의 클래스가 다른 패키지에 들어있어서 실행이 안되는 상황이라면 import 로 해당 클래스를 추가해주면 된다. 이클립스 상에서 이러한 행위는 사실 환경변수 설정과 동일한 역할을 한다. 다음 예시로 그 이유를 알아보자. cmd 상에서 java를 실행하는데 다른 폴더에 class가 들어가있는 상황 당신이 사용해야하는 클래스가 다른 패키지인 lib(자바에서는 폴더는 패키지와 같은 역할을 수행) 안에 들어있어서 단순하게 java classpath2 명령어로 실행이 안된다고 생각해보자. 그렇다면 lib 를 어떻게 처리해야 하는가? 이렇게 쓰면 문제없이 실행이 된다. .은 현재 위치하고 있는 곳의 class 를 찾을것, lib 는 그 폴더 안도 뒤져..
· 개발/Java
String은 문자열, []는 배열 즉, args라는 이름의 문자열 배열을 사용하겠다는 뜻이다! 메인 함수에서 이 String[] args를 생략할 수 없는데 그 이유는 프로그램이 시작되는 부분이기 때문에 외부에서 값을 받을 수 있어야하기 때문(?)
· 개발/Java
그 이유는 다른 멤버들이 main에 접근해야 해서이다. 우선 public 은 접근제한자이고, 그 종류에는 public, protected, private, default가 있는데 public 모든 곳에서 접근 가능 protected 같은 패키지안의 클래스나 상속 클래스에서만 접근 가능 private 클래스 내에서만 접근 가능 default 같은 패키지 안에서만 가능 여기서 public이 쓰이는 이유는 main은 프로그램의 기본이므로 모든곳에서 접근 가능해야하다보니 main 앞엔 예외없이 public만이 가능함! 즉, 모든 클래스에서 접근 가능한 메소드임을 선언하고 시작하는것!
yeonlee
'분류 전체보기' 카테고리의 글 목록 (6 Page)