您的位置:首页 > 运维架构 > Linux

Linux下的socket协议UDP Client/Server程序

2012-09-16 14:29 537 查看
客户端,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 already!\n");

if((ssock = socket(AF_INET,SOCK_DGRAM,IPPROTO_UDP))<0){

perror("socket error:\n");

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(7758);

sendto(ssock,(void *)buf,MAXBUF,0,(struct sockaddr*)&server_addr,sizeof(server_addr));

printf("Send message:%s\n",buf);

clen=sizeof(client_addr);

recvfrom(ssock,(void *)buf,MAXBUF,0,(struct sockaddr*)&server_addr,&clen);

printf("Receive message:%s\n",buf);

close(ssock);

return 0;

}

服务端,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(7758);

if(bind(ssock,(struct sockaddr *)&server_addr,sizeof(server_addr))<0){

perror("bind error:");

exit(1);

}

clen=sizeof(client_addr);

recvfrom(ssock,(void *)buf,MAXBUF,0,(struct sockaddr*)&client_addr,&clen);

strcpy(buf,"I miss you");

sendto(ssock,(void *)buf,MAXBUF,0,(struct sockaddr*)&client_addr ,sizeof(client_addr));

close(ssock);

return 0;

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