//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
int main()
{
int ssock;
int clen;
struct sockaddr_in client_addr, server_addr;
char buf[MAXBUF];
if((ssock = socket(AF_INET, SOCK_DGRAM, IPPROTO_UDP))<0) {
perror("socket error : ");
exit(1);
}
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);
if(bind(ssock, (struct sockaddr*)&server_addr, sizeof(server_addr))<0)
{
perror("bind errer : ");
exit(1);
}
recvfrom(ssock, (void*)buf, MAXBUF, 0, (struct sockaddr*)&client_addr, &clen);
strcpy(buf, "I hate you");
sendto(ssock, (void*)buf, MAXBUF, 0, (struct sockaddr*)&client_addr,
sizeof(client_addr));
close(ssock);
return 0;
}
//CLIENT
#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
int main(){
int ssock;
int clen;
struct sockaddr_in client_addr, server_addr;
char buf[MAXBUF];
strcpy(buf, "I miss you alerady");
if((ssock = socket(AF_INET, SOCK_DGRAM, IPPROTO_UDP))< 0){
perror("socket error :");
exit(1);
}
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);
sendto(ssock, (void*)buf, MAXBUF, 0,
(struct sockaddr*)&server_addr, sizeof(server_addr));
printf("Send message : %s\n, buf");
recvfrom(ssock, (void*)buf, MAXBUF, 0,
(struct sockaddr*)&client_addr, &clen);
printf("Receive message : %s\n", buf);
close(ssock);
return 0;
}
'프로그래밍 > C , C ++' 카테고리의 다른 글
[c_스터디]2. 데이터형, 변수, 서식문자특수문자 (0) | 2013.02.28 |
---|---|
[c_스터디]1. 개념 (0) | 2013.02.28 |
[C/linux] TCP Serve/Client socket programming Example (0) | 2012.06.18 |
동적 링크 라이브러리(DLL) 사용 / 만들기 (0) | 2012.06.14 |
__stdcall 쓸때 (0) | 2012.04.16 |