데이터 플러그인 서비스와 클라이언트
listener.c
// (listener.c): ,
#include <stdio.h>
#include <stdlib.h>
#include <errno.h>
#include <string.h>
#include <sys/types.h>
#include <sys/socket.h>
#include <sys/wait.h>
#include <netinet/in.h>
#define MYPORT 5000
#define MAXBUFLEN 100
int main(int argc, char *argv[])
{
int sock_fd;
struct sockaddr_in my_addr;
struct sockaddr_in their_addr;
int addr_len, numbytes;
char buf[MAXBUFLEN];
if((sock_fd = socket(AF_INET, SOCK_DGRAM, 0)) == -1)
{
perror("socket");
return 1;
}
my_addr.sin_family = AF_INET;
my_addr.sin_port = htons(MYPORT);
my_addr.sin_addr.s_addr = INADDR_ANY; // IP
bzero(&(my_addr.sin_zero), 8); //
if(bind(sock_fd, (struct sockaddr*)&my_addr, sizeof(struct sockaddr)) == -1)
{
perror("bind");
return 1;
}
addr_len = sizeof(struct sockaddr);
if((numbytes = recvfrom(sock_fd, buf, MAXBUFLEN, 0, (struct sockaddr*)&their_addr, &addr_len)) == -1)
{
perror("recvfrom");
return 1;
}
close(sock_fd);
printf("got packet from %s
", inet_ntoa(their_addr.sin_addr));
printf("packet is %d bytes long
", numbytes);
buf[numbytes] = 0;
printf("packet contains [%s]
", buf);
return 0;
}
talker.c
// (talker.c):
#include <stdio.h>
#include <stdlib.h>
#include <errno.h>
#include <string.h>
#include <netdb.h>
#include <sys/types.h>
#include <sys/socket.h>
#include <netinet/in.h>
#define MYPORT 5000
int main(int argc, char *argv[])
{
int sock_fd, numbytes;
struct sockaddr_in their_addr;
struct hostent *he;
if(argc < 3)
{
fprintf(stderr, "Usage: %s <hostname> <message>
", argv[0]);
return 1;
}
if((he = gethostbyname(argv[1])) == NULL)
{
herror("gethostbyname");
return 1;
}
if((sock_fd = socket(AF_INET, SOCK_DGRAM, 0)) == -1)
{
perror("socket");
return 1;
}
their_addr.sin_family = AF_INET;
their_addr.sin_port = htons(MYPORT);
their_addr.sin_addr = *((struct in_addr*)he->h_addr);
bzero(&(their_addr.sin_zero), 8);
if((numbytes = sendto(sock_fd, argv[2], strlen(argv[2]), 0, (struct sockaddr*)&their_addr, sizeof(struct sockaddr))) == -1)
{
perror("sendto");
return 1;
}
close(sock_fd);
printf("sent %d bytes to %s
", numbytes, inet_ntoa(their_addr.sin_addr));
return 0;
}
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
다양한 언어의 JSONJSON은 Javascript 표기법을 사용하여 데이터 구조를 레이아웃하는 데이터 형식입니다. 그러나 Javascript가 코드에서 이러한 구조를 나타낼 수 있는 유일한 언어는 아닙니다. 저는 일반적으로 '객체'{}...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.