일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 마인크래프트
- 알고리즘
- 배열 정렬
- 덧셈
- 오버워치
- sa 계정 비밀번호 변경
- c언어 알고리즘
- 네트워크 관리사 2급 필기
- 빅엔디언
- abex crack me 2번 문제풀이
- C언어
- 프로그래밍 언어론
- 리틀엔디언
- 배열
- 암호화폐
- 구조체 함수
- 재밌는 모바일게임
- 프론트엔드 개발자
- Reverse Me
- abex crack me 5번문제
- 배열 탐색
- 구조체
- UDP daytime
- 안드로이드 백도어
- 메이플스토리 M 사전예약
- 1.9.2
- 리버싱
- react native
- abex crack me 1번
- 레나 리버싱
- Today
- Total
Gyejoong's Information
daytime서버 코딩 본문
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <unistd.h>
#include <arpa/inet.h>
#include <sys/socket.h>
#include <time.h>
#define MAXLINE 4096
void err_quit(const char *message);
void err_sys(const char *message);
int main(int argc, char *argv[]){
// 1. socket
int listenfd;
if ( ( listenfd = socket(AF_INET,SOCK_STREAM,0)) < 0)
err_sys("socket error");
// 2. bind
struct sockaddr_in servaddr;
memset(&servaddr,0,sizeof(servaddr));
servaddr.sin_family = AF_INET;
servaddr.sin_port = htons(13);
servaddr.sin_addr.s_addr = htonl(INADDR_ANY);
if (bind(listenfd,(struct sockaddr*)&servaddr,sizeof(servaddr)) < 0)
err_sys("bind error");
// 3. listen
if(listen(listenfd,SOMAXCONN) < 0)
err_sys("listen error");
for( ; ; ) {
// 4. accept
int connfd;
struct sockaddr_in cliaddr;
socklen_t len = sizeof(cliaddr);
if ( (connfd = accept(listenfd,(struct sockaddr*)&cliaddr,&len)) < 0)
err_sys("accept error");
// 5. inet_ntop
char cliname[ADDRSTRLEN];
if (inet_ntop(AF_INET,&cliaddr.sin_addr,cliname,sizeof(cliname)) < 0)
printf("Handling client %s:%d\n",cliname,ntohs(cliaddr.sin_port));
else
err_sys("inet_ntop error");
// 6. write
time_t ticks = time(NULL);
char buff[MAXLINE];
snprintf(buff,sizeof(buff),"%.24s\r\n",ctime(&ticks));
if(write(connfd,buff,strlen(buff)) < 0)
err_sys("write error");
close(connfd);
}
}
void err_quit(const char *message){
fputs(message,stderr);
fputc('\n',stderr);
exit(1);
}
void err_sys(const char *message){
perror(message);
exit(1);
}
'Study > Socket programming' 카테고리의 다른 글
클라이언트 공용코드(daytime,qotd,echo,finger) (0) | 2016.09.30 |
---|---|
TCP IP 소켓프로그래밍 소스코드(daytime,qotd,echo,finger) (0) | 2016.09.28 |
Socket Programming 정리 (0) | 2016.09.28 |