1.  논리 연산자 

- 주어진 논리식을 판단하여, true와 false로 결정하는 연산자.

 논리 연산자

설명 

&& 

논리식 모두 참이면 1반환 (and)

 ||

하나라도 참이면 1반환 (or) 

 !

결과가 참이면 0을 , 거짓이면 1반환 (not) 



2. 삼항 연산자

- 조건식? 반환값1: 반환값2

ex)  result=(num1>num2)? num1:num2;



3. 쉼표 연산자

- 두 연산식을 하나의 연산식으로 나타내고자 할 때

- 둘 이상의 인수를 함수로 전달하고자 할 때

ex) int num1=15, num2=8;

     printf("첫 번째 수는 %d이고, 두 번째 수는 %d입니다.\n", num1, num2);



4. sizeof 연산자

- 변수나 상수가 피연산자로 전달되면, 해당 변수나 상수에 해당하는 타입의 크기를 반환. 



5. 포인터 연산자

- 주소 연산자(&) // 변수 이름 앞에 사용, 해당 변수의 주소값을 반환 , 앰퍼샌드, 번지 연산자

- 참조 연산자(*) // 포인터의 이름이나 주소 앞에 사용, 포인터에 가리키는 주소에 저장된 값을 반환, 참조 연산자





'언어 > C' 카테고리의 다른 글

C언어 배열  (0) 2018.11.06
C언어 함수  (0) 2018.11.06
C언어 제어문  (1) 2018.11.02
c언어 기본  (0) 2018.11.02
C프로그래밍  (0) 2018.11.01

1. 인용구 

- 짧은 인용구  <q> </q> // quotation의 약자 

- 블록 인용구  <blockquote> </blockquote> 


2. 주소 표현

- <address> </address>

<참고 http://tcpschool.com/html/html_text_quotations>



3. 축약형 표현

- <addr> </abbr>  // 마우스 올리면 설명나오는 것. 




4. 문자셋(Character set)

<meta charset="UFT-8"> // HTML5에서 UTF-8문자셋을 사용.




'언어 > HTML_CSS' 카테고리의 다른 글

HTML 입력 양식  (3) 2018.11.06
HTML 공간분할  (1) 2018.11.04
HTML 기본요소  (1) 2018.11.04
HTML 텍스트 요소- 제목, 단락, 서식  (0) 2018.11.02
HTML 기본  (0) 2018.11.02

1. 제목(Heading)

- <h1> </h1> // 위아래로 약간의 여백이 자동 삽입. 


2. 단락(Paragraph)

- 내용상 끈허어서 구분할 수 있는 하나하나의 부분을 의미하며, 문단이라 함. 

- <p> </p> // 위아래로 약간의 여백이 자동 삽입. 


3. 줄바꿈(new line)

- <br> // 빈 태그 


4. 텍스트 서식 미리 정하기

- <pre> </pre> 

// preformatted text의 약자로, 작성된 텍스트의 모든 띄어쓰기와 줄 나누기가 웹브라우저에 그대로 표현됨.



5. 수평 가로 구분선

- <hr> // 빈 태그 




6. 글씨 강조(굵은 글씨)

- <b> </b>  // bord text의 약자 

- <strong> </strong>

 //  <b>와 <strong>의 차이점 -- 검색엔진에서 <strong>을 더 중요하게 인식. 

 <b>는 단순히 텍스트가 굵은 부분

    <strong> 텍스트 굵은 부분 + 내용이 중요하다는 의미 



7. 이탤릭체 

- <i> </i>

- <em> </em>

 // 요런느낌이 이탤릭체 


8. 하이라이팅 효과 

- <mark> </mark>


9. 삭제 효과

- <del> </del>


10. 삽입 효과

- <ins> </ins> // insert의 약자


11. 위첨자와 아래첨자 효과

- <sup> </sup> // 위첨자로, superscript의 약자.

- <sub> </sub> // 아래첨자로, subscript의 약자.

<참고 http://tcpschool.com/html/html_text_formatting>







'언어 > HTML_CSS' 카테고리의 다른 글

HTML 입력 양식  (3) 2018.11.06
HTML 공간분할  (1) 2018.11.04
HTML 기본요소  (1) 2018.11.04
HTML 텍스트 요소- 인용구, 문자셋  (0) 2018.11.02
HTML 기본  (0) 2018.11.02

1. HTML이란?

- HyperText Markup Language



2. HTML 태그

- <>로 감싸서 표현.

- 종료태그가 없으면?? 빈 태그(empy tag) ex) <img> <br> <hr>



3. HTML 기본 구조 

<!-- 주석표시 -->



4. HTML 요소 구조

ex) <img src="22.jpg" alt="이미지가 없어요">

<!-- alt 속성은 이미지를 불러올 수 없는 상황에서 이미지 대신 보이는 문자열 지정하는 것 -->

<참고 http://tcpschool.com/html/html_intro_elementStructure >



'언어 > HTML_CSS' 카테고리의 다른 글

HTML 입력 양식  (3) 2018.11.06
HTML 공간분할  (1) 2018.11.04
HTML 기본요소  (1) 2018.11.04
HTML 텍스트 요소- 인용구, 문자셋  (0) 2018.11.02
HTML 텍스트 요소- 제목, 단락, 서식  (0) 2018.11.02

1. printf() 함수

- 데이터를 양식에 맞게 출력. 

// f는 formatted의 약자이며, 서식화된 출력을 지원한다는 의미.

// printf("나는 %d시에 일어나요",12);


2. escape sequence (이스케이프 시퀀스)

 시퀀스

 출력내용

\'

작은따옴표 

\" 

큰따옴표 

\n

줄바꿈(new line) 

\t

수평 탭(tab) 

\v

수직 탭(tab) 

\\

백슬래시(\) 

\a

경고음 발생  



3. 서식지정자 (format specifier)

 서식지정자

출력 데이터 형태 

 %c

하나의 문자

 %s

문자열

 %d

부호 있는 10진 정수 

 %f

고정 소수점으로 표현한 실수(소수점 이하 6자리까지)

 %o

부호 없는 8진 정수

 %u

부호 없는 10진 정수 

 %x

부호 없는 16진 정수 

 %e

부동 소수점으로 표현한 실수 



4. scanf() 함수

- 다양한 서식에 맞춰 입력받게 해주는 함수 

// printf("첫 번째 정수를 입력하세요:");

   scanf("%d", &num1); 



5. 변수(variable)

- 데이터를 저장할 수 있는 메모리 공간.



6. 비트(bit)와 바이트(byte)

- 8bit= 1byte = 한 문자를 표현할 수 있는 최소 단위.



7. 변수 선언

// int num01, num02;

이렇게 변수의 타입이 같으면, 동시에 선언 가능  



8. 상수(constant)

- 데이터를 저장할 수 있는 메모리 공간

- 프로그램이 실행되는 동안 저장된 데이터를 변경 못함. // 이것이 변수와의 차이점


 (1) 리터럴 함수(literal constant)

     - 저장된 메모리 공간을 가리키는 이름이 없음. 

        123 // 정수형 리터럴 상수

        'a' // 문자형 리터럴 상수 


 (2) 심볼릭 상수(symbolic constant)

      - 선언과 동시에 초기화 필수.

      - const 또는 매크로 이용 선언

          const int MAX=10; // const 키워드를 이용한 심볼릭 상수

          #define MAX 10; // #define 선행처리 지시자를 이용한 매크로 심볼릭 상수 



9. 타입 변환(type conversion)

- 하나의 타입을 다른 타입으로 바꾸는 행위


  (1) 묵시적 타입 변환(자동 타입 변환, implicit type conversion)

       


  (2) 명시적 타입 변환(강제 타입 변환, explicit type conversion)



'언어 > C' 카테고리의 다른 글

C언어 배열  (0) 2018.11.06
C언어 함수  (0) 2018.11.06
C언어 제어문  (1) 2018.11.02
C언어 기본2  (0) 2018.11.02
C프로그래밍  (0) 2018.11.01

<실행 파일 생성 순서>

<참고 http://tcpschool.com/c/c_intro_programming> 



1. 소스파일

- 파일의 확장자는 .c





2. 선행처리기 // 선행처리 문자(#)로 시작하는 선행처리 지시문 처리 작업

- 사용법 

  #include <stdio.h>

  #include "myStudio.h"

선행처리 지시자 

설명 

#include 

외부에 선언된 함수나 상수 등을 사용하기 위해 

 #define

함수나 상수를 단순화해주는 매크로를 정의 

#undef 

#define 지시자로 이미 정의된 매크로를 삭제 

#line

__LINE__매크로와 __FILE__ 매크로를 재정의 

#error

지정한 오류 메시지 출력, 컴파일 과정을 중단할때 사용. 

#pragma

os별로 달라지는 지시사항을 컴파일러에 전달할때 사용. 

#if, #ifdef, #ifndef, #elif, #else, #endif

조건부 컴파일 지시자  




3. 컴파일러 

- 컴퓨터가 알아볼 수 있는 기계어로 변환. 




4. 오브젝트 파일 

- 확장자는 .o나 .obj 



5. 링커(linker)에 의한 링크

- 하나 이상의 오브젝트 파일과 라이브러리 파일, 시동 코드 등을 합펴 하나의 파일로 만드는 작업을 링크(link)


6. 실행파일 생성.

- 확장자는 .exe




<C프로그래밍의 특징>

1. 기본 단위는 함수

- 반드시 main()함수 먼저 호출.


2. 함수 내의 각 명령문은 세미콜론으로 종결.


3. 대소문자 구분 


4. 주석 

- 한줄 : //

- 여러줄 : /* */


'언어 > C' 카테고리의 다른 글

C언어 배열  (0) 2018.11.06
C언어 함수  (0) 2018.11.06
C언어 제어문  (1) 2018.11.02
C언어 기본2  (0) 2018.11.02
c언어 기본  (0) 2018.11.02

1. NAT란?

- Network Address Translation의 약자로서, 네트워크 주소 변환이다.

- 즉, 내부 네트워크망에는 사설IP주소를 사용.

      외부 인터넷으로 나가는 경우 사설IP -> 공인IP로 변환하는 기술. 


2. NAT의 종류

- Static : 사설IP와 공인IP가 1:1 매핑 

- Dynamic : 그룹:그룹 매핑  

- PAT(Port Address Translation) : 다수의 사설IP -> 1개의 공인 IP로 변환.


3. NAT-PAT설정 

<int fa0/0 ip주소설정 및 활성화>


R1(config)#int fa0/0

R1(config-if)#ip add 10.0.0.1 255.255.255.0

R1(config-if)#no shut

R1(config-if)#exit


<int fa0/1 ip주소설정 및 활성화>


R1(config)#int fa0/1

R1(config-if)#ip add 192.168.0.50 255.255.255.0

R1(config-if)#no shut

R1(config-if)#exit



<NAT-PAT을 위한 fa0/0 설정>

//라우터를 기준으로 pc와 연결된 곳을 inside 설정한다. 

R1#conf t

R1(config)#int fa0/0

R1(config-if)#ip nat inside

R1(config-if)#exit


<NAT-PAT을 위한 fa0/1 설정>

//라우터를 기준으로 cloud와 연결된 곳을 outside 설정한다. 

R1#conf t

R1(config)#int fa0/1

R1(config-if)#ip nat outside

R1(config-if)#exit



<NAT-PAT 전체 설정>

R1(config)#access-list 1 permit 10.0.0.0 0.0.0.255 // pc가 속한 네트워크 주소, 와일드 카드 

R1(config)#ip nat pool gongin 192.168.0.60 192.168.0.70 netmask 255.255.255.0 

// poo1(그룹)이름은 gongin으로 했으며, 그뒤에 ip주소는 현재 나의 리얼 pc에 cmd 창 -> ipconfig해서

내가 사용하는 ip주소와 같은 대역대 주소를 사용한다.

즉, 정리하자면 자기pc의 ip주소 대역대에서 사용하고 싶은 ip주소의 범위를 정해준다.

// ip주소 대역 시작, 끝, netmask주소 

 

R1(config)#ip nat inside source list 1 pool gongin overload 

// 그룹 gongin에 오버로드(?) 시스코설정에서는 pat을 오버로드라고 한다고 한다,,~


<라우팅 테이블 설정> 


R1(config)#ip route 0.0.0.0 0.0.0.0 192.168.0.1 

// 디폴드값으로 설정하며, 맨 마지막 주소는 자기 리얼 pc의 게이트웨이를 적는다. 



<확인>

R1#sh ip rou

Codes: C - connected, S - static, R - RIP, M - mobile, B - BGP

       D - EIGRP, EX - EIGRP external, O - OSPF, IA - OSPF inter area

       N1 - OSPF NSSA external type 1, N2 - OSPF NSSA external type 2

       E1 - OSPF external type 1, E2 - OSPF external type 2

       i - IS-IS, su - IS-IS summary, L1 - IS-IS level-1, L2 - IS-IS level-2

       ia - IS-IS inter area, * - candidate default, U - per-user static route

       o - ODR, P - periodic downloaded static route


Gateway of last resort is 192.168.0.1 to network 0.0.0.0


     10.0.0.0/24 is subnetted, 1 subnets

C       10.0.0.0 is directly connected, FastEthernet0/0

C    192.168.0.0/24 is directly connected, FastEthernet0/1

S*   0.0.0.0/0 [1/0] via 192.168.0.1          



R1#sh ip int bri


Interface                  IP-Address      OK? Method Status                Protocol

FastEthernet0/0            10.0.0.1        YES manual up                    up

FastEthernet0/1            192.168.0.50    YES manual up                    up

FastEthernet1/0            unassigned      YES unset  up                    down

FastEthernet1/1            unassigned      YES unset  up                    down

FastEthernet1/2            unassigned      YES unset  up                    down

FastEthernet1/3            unassigned      YES unset  up                    down

FastEthernet1/4            unassigned      YES unset  up                    down

FastEthernet1/5            unassigned      YES unset  up                    down

FastEthernet1/6            unassigned      YES unset  up                    down

FastEthernet1/7            unassigned      YES unset  up                    down

FastEthernet1/8            unassigned      YES unset  up                    down

 --More--



가상의 pc에서 

구글: 8.8.8.8 로 ping을 보내서 인터넷이 되는지 확인한다. 

 


아!! 그리고 가장 중요한것!!

라우터는 껐다 키면 입력한 명령어가 다 날라간다,,~~

따라서, 라우터를 끄기전에 

copy r s 라는 명령어로 지금까지의 내용을 저장해야한다!!

1. Client Program 

- 소켓 생성 및 서버의 ip주소/ 포트번호 인식 필수 

- socket(), connect(), read() 등의 소켓 관련 API함수 사용.


2. Client 순서 

- 소켓을 생성 

- 연결할 서버의 주소를 설정

- 소켓을 서버에 연결

- 서비스 요청과 처리

- 소켓 연결을 종료 



3. 소스 코드


#include <stdio.h>

#include <netinet/in.h>

#include <sys/socket.h>

#include <ctype.h> // memset(), strlen() 함수 사용을 위한 헤더 

#include <string.h> 


#define PORT 9000

#define IPADDR "127.0.0.1"


int main()

{

  int c_socket;

  struct sockaddr_in c_addr;

  int len;

  int n;


  char rcvBuffer[BUFSIZ];  // 서버로부터 오는 문자열을 저장할 버퍼 


  c_socket=socket(PF_INET, SOCK_STREAM, 0);  // 소켓 생성


  memset(&c_addr, 0, sizeof(c_addr));  // c_addr구조체 선언 

  c_addr.sin_addr.s_addr=inet_addr(IPADDR);  // IPADDR은 위에 define으로 선언했듯이 자기자신인 127.0.0.1

  c_addr.sin_family=AF_INET;  

  c_addr.sin_port=htons(PORT); // 포트번호는 9000번 


  if(connect(c_socket, (struct sockaddr *) &c_addr, sizeof(c_addr))== -1){  // 소켓을 서버에 연결하기. 

    printf("Can not connect \n");

    return -1;

  }


  if((n=read(c_socket, rcvBuffer, sizeof (rcvBuffer)))>0){  // 서비스 요청과 처리 (서버로 부터 오는 문자열을 읽어서 rcvBuffer에 넣음)

    return -1;

  }


  rcvBuffer[n]='\0';  // 문자열의 끝을 나타내는 널값 입력 

  printf("received Data: %s\n", rcvBuffer);  // 서버로 부터 온 문자열을 클라이언트 화면에 출력


  close(c_socket);  // 소켓 종료 

  }

'웹소켓' 카테고리의 다른 글

hello_server.c  (0) 2018.10.31
소켓 프로그래밍 맛보기  (0) 2018.10.31

+ Recent posts