일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 | 29 |
30 | 31 |
- 프론트엔드 개발자
- 오버워치
- 구조체
- 1.9.2
- 네트워크 관리사 2급 필기
- 배열 정렬
- UDP daytime
- abex crack me 5번문제
- 프로그래밍 언어론
- C언어
- 배열 탐색
- 레나 리버싱
- abex crack me 2번 문제풀이
- 안드로이드 백도어
- react native
- 구조체 함수
- abex crack me 1번
- Reverse Me
- 알고리즘
- 리틀엔디언
- 메이플스토리 M 사전예약
- 빅엔디언
- 리버싱
- sa 계정 비밀번호 변경
- 암호화폐
- 배열
- c언어 알고리즘
- 재밌는 모바일게임
- 덧셈
- 마인크래프트
- Today
- Total
목록Study/Socket programming (9)
Gyejoong's Information
1. udp daytime 클라이언트 소스코드 #include #include #include #include #include #include void err_quit(const char *message);void err_sys (const char *message); #define MAXLINE 4096 /* max text line length */ int main(int argc, char *argv[]){if (argc != 2)err_quit("usage: daytimeudpcli "); // 비연결지향형 udp 소켓 생성 (socket)int sockfd;if ( (sockfd = socket(AF_INET,SOCK_DGRAM,0)) < 0)err_sys("socket error"); // 서..
우선 엔디언(Endianness)은 컴퓨터의 메모리와 같은 1차원의 공간에 여러 개의 연속된대상을 배열하는 방법을 뜻하며, 바이트를 배열하는 방법을 특히 바이트 순서(Byte order)라 한다. 엔디언은 보통 큰 단위가 앞에 나오는 빅 엔디언과 작은 단위가 앞에 나오는 리틀 엔디언으로 나뉘게 된다. 간단하게 차이점을 알아보자면 그림으로 알수있다. 출처 : 위키백과 위 그림은 빅엔디언의 그림이다. 32비트의 정수를 메모리에 배열할 때, ABCD순서로 큰단위를 앞에 배열하는 것을 볼 수있다. 출처 : 위키백과 위 그림은 리틀엔디언의 그림이다. 32비트의 정수를 메모리에 배열할 때, DCBA순서로 작은단위가앞에 배열된 것을 볼 수있다. 좀더 간단하게 차이점에 대해서 알아보자면 바이트순서(byte order)..
서버 코드 (daytime, qotd, echo, finger) daytime ※ 헤더파일 추가.※ 포트번호 13 time_t ticks = time(NULL);char buff[MAXLINE];snprintf(buff,sizeof(buff),"%.24s\r\n",ctime(&ticks));if (wrtie(connfd,buff,strlen(buff)) < 0)err_sys("write error"); echo※ "common.h" 헤더파일 추가.※ 포트번호 7※ void str_echo(int sockfd); 함수 선언 추가. pid_t childpid;if ( (childpid = fork()) < 0)err_sys("fork error");else if (childpid == 0) {close(li..
클라이언트 코드 (daytime, qotd, echo, finger) daytime ※ 따로 추가할 헤더파일 없음.※ 포트번호 13 int n;char recvline[MAXLINE+1];while( (n = read(sockfd,recvline,MAXLINE)) > 0){recvline[n] = 0;if (fputs(recvline, stdout) == EOF)err_sys("fputs error");}if (n < 0)err_sys("read error");close(sockfd);exit(0); quote of the day※ 따로 추가할 헤더파일 없음.※ 포트번호 17 int n;char recvline[MAXLINE+1];while ( (n = read(sockfd,recvline,MAXLINE..
#include #include #include #include #include #include void err_quit(const char *message); void err_sys(const char *message); #define MAXLINE 4096 int main(int argc, char *argv[]) { // listen할 소켓 생성 int listenfd; if( (listenfd = socket((AF_INET, SOCK_STREAM,0)) < 0) err_sys("socket error"); // 서버주소와 소켓을 연결(bind) struct sockaddr_in servaddr; memset(&servaddr,0,sizeof(servaddr); servaddr.sin_family..
#include #include #include #include #include #include void err_quit(const char *message); void err_sys(const char *message); #define MAXLINE 4096 int main(int argc, char *argv[]) { if(argc != 2) err_quit("usage : ./(daytime,qotd,echo,finger)tcpcli ); // 클라이언트의 소켓 생성 int sockfd; if( (sockfd = socket(AF_INET,SOCK_STREAM,0)) < 0) err_sys("socket error"); // 클라이언트의 포트번호 설정 struct sockaddr_in servadd..
Daytime 클라이언트 소스코드 #include #include #include #include #include #include void err_quit(const char *message); void err_sys (const char *message); #define MAXLINE 4096 /* max text line length */ int main(int argc, char *argv[]) { if (argc != 2) err_quit("usage: daytimetcpcli "); // 연결지향형 tcp 소켓 생성 (socket) int sockfd; if ( (sockfd = socket(AF_INET,SOCK_STREAM,0)) < 0) err_sys("socket error"); // 서..
1. 리눅스에서 소켓프로그래밍 개발도구 설치 및 설정하는 방법 (개발환경구성_GCC.txt 참고) 1) VirtualBox 설치. 2) VirtualBox에 가상머신 생성 3) VirtualBox에 Fedora24 설치 4) Fedora24에 C,C++ 개발환경 구성 5) Fedora24에 개발용 폰트 설정 6) Fedora24에 한글입력 설정 2. vi, gcc, make, man 사용법 및 의미 1) vi 사용법 - vi 으로 vi 편집기를 사용할 수 있다. 2) gcc 사용법 - gcc란 c,c++등의 프로그래밍 언어들을 컴파일 할 수 있는 컴파일러이다. 3) make 사용법 - make라고 입력하면 makefile이 실행되어 makefile안에 PROGS에 소스파일을 등록하면 등록된 소스파일이 컴..
#include #include #include #include #include #include #include #define MAXLINE 4096 void err_quit(const char *message);void err_sys(const char *message); int main(int argc, char *argv[]){ // 1. socketint listenfd;if ( ( listenfd = socket(AF_INET,SOCK_STREAM,0)) < 0)err_sys("socket error"); // 2. bindstruct sockaddr_in servaddr;memset(&servaddr,0,sizeof(servaddr));servaddr.sin_family = AF_INET;se..