//SERVER
#include <stdio.h>
#include <unistd.h>
#include <stdlib.h>
#include <string.h>
#include <sys/socket.h>
#include <sys/stat.h>
#include <arpa/inet.h>
#define MAXBUF 256
#define EQ ==
int main()
{
int ssock, csock; // 소켓 스크립트 정의
int clen;
struct sockaddr_in client_addr, server_addr; // 주소 구조체
char buf[MAXBUF] = "i like you!!! "; // 클라이언트에 보내줄 문자
// 서버 소켓 생성
if((ssock = socket(PF_INET, SOCK_STREAM, IPPROTO_TCP)) < 0 ){
perror("socket error :");
exit(1);
}
clen = sizeof(client_addr);
// 주소 구조체에 주소 지정
memset(&server_addr, 0, sizeof(server_addr));
server_addr.sin_family = AF_INET;
server_addr.sin_addr.s_addr = htonl(INADDR_ANY);
server_addr.sin_port = htons(3317);
// 사용할 포트로 3317번 포트 사용
//bind() 사용해서 서버소켓의 주소 설정
if (bind(ssock, (struct sockaddr *)&server_addr, sizeof(server_addr))<0){
perror("bind error: ");
exit(1);
}
//위에서 지정한 주소로 크라이언트 접속을 기다림
if(listen(ssock, 8) < 0){
perror("listen error : ");
exit(1);
}
while(1){
// 클라이언트가 접속하면 접속을 허용하고 , 클라이언트 소켓을 생성
csock = accept(ssock, (struct sockaddr*)&client_addr, &clen);
//클라이언트로 buf에 있는 문자열 발송
if(write(csock, buf, MAXBUF)<=0)
perror("write error: ");
// 클라이언트 소켓을 닫음
close(csock);
}
return 0;
}
#include <stdio.h>
#include <unistd.h>
#include <stdlib.h>
#include <string.h>
#include <sys/socket.h>
#include <sys/stat.h>
#include <arpa/inet.h>
#define MAXBUF 256
#define EQ ==
int main()
{
int ssock;
int clen;
//소켓 생성
struct sockaddr_in server_addr;
char buf[MAXBUF];
if((ssock = socket(PF_INET, SOCK_STREAM, IPPROTO_TCP)) <0){
perror("socket error : ");
exit(1);
}
clen = sizeof(server_addr);
//소켓에 접속할 주소 지정
memset(&server_addr, 0, sizeof(server_addr));
server_addr.sin_family = AF_INET;
server_addr.sin_addr.s_addr = inet_addr("127.0.0.1");
server_addr.sin_port = htons(3317);
// 지정한 주소로 접속
if(connect(ssock, (struct sockaddr *)&server_addr, clen)<0){
perror("connect error : ");
exit(1);
}
memset(buf, 0, MAXBUF);
//서버에서 전송하는 문자열을 받음
if(read(ssock, buf, MAXBUF) <= 0){
perror("read error : ");
exit(1);
}
// 소켓 닫음
close(ssock);
// 받아온 문자열 출력
printf("\nread : %s\n\n", buf);
return 0;
}
'프로그래밍 > C , C ++' 카테고리의 다른 글
[c_스터디]1. 개념 (0) | 2013.02.28 |
---|---|
[C/linux] UDP Serve/Client socket programming Example (0) | 2012.06.18 |
동적 링크 라이브러리(DLL) 사용 / 만들기 (0) | 2012.06.14 |
__stdcall 쓸때 (0) | 2012.04.16 |
명령어로 라이브러리 만들기 (0) | 2011.09.29 |