您的位置:首页 > 编程语言

Socket Server 代码:UDP

2015-03-25 22:28 211 查看
一、server端

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <sys/socket.h>
#include <netinet/in.h>

int main(int argc, char*argv[])
{
int sockfd = socket(AF_INET, SOCK_DGRAM, 0);

struct sockaddr_in addrSrv;
bzero(&addrSrv, sizeof(struct sockaddr_in));
addrSrv.sin_addr.s_addr = htonl(INADDR_ANY);
addrSrv.sin_family = AF_INET;
addrSrv.sin_port = htons(6000);
bind(sockfd, (struct sockaddr*)&addrSrv, sizeof(struct sockaddr));

struct sockaddr_in addrConn;
socklen_t len = sizeof(struct sockaddr_in);

char buf[1024] = {0};
recvfrom(sockfd, buf, 1024, 0, (struct sockaddr*)&addrSrv, &len);
printf("server recv:%s\n", buf);

sendto(sockfd, "server data", strlen("server data"), 0, (struct sockaddr*)&addrSrv, len);

close(sockfd);

return 0;
}
二、client端

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <sys/socket.h>
#include <netinet/in.h>

int main(int argc, char*argv[])
{
int sockfd = socket(AF_INET, SOCK_DGRAM, 0);

struct sockaddr_in addrSrv;
bzero(&addrSrv, sizeof(struct sockaddr_in));
addrSrv.sin_addr.s_addr = inet_addr("127.0.0.1");
addrSrv.sin_family = AF_INET;
addrSrv.sin_port = htons(6000);

sendto(sockfd, "client data", strlen("client data"), 0, (struct sockaddr*)&addrSrv, sizeof(struct sockaddr));

char buf[1024] = {0};
int len = sizeof(struct sockaddr);
recvfrom(sockfd, buf, 1024, 0, (struct sockaddr*)&addrSrv, &len);
printf("client recv:%s\n", buf);

close(sockfd);

return 0;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: