您的位置:首页 > 其它

UDP通讯程序设计

2015-08-12 22:08 134 查看
UDP编程模型:



服务器端程序

#include<stdio.h>
#include<stdlib.h>
#include<string.h>
#include<unistd.h>
#include<sys/types.h>
#include<sys/socket.h>
#include<netinet/in.h>/*定义了struct sockaddr_in*/
void main()
{
int sockfd;
/*创建socket*/
sockfd=socket(AF_INET,SOCK_DGRAM,0);
if(sockfd==-1)
{
printf("create socket false");
exit(1);
}
/*绑定地址*/
struct sockaddr_in server_addr;
server_addr.sin_family=AF_INET;
server_addr.sin_port=htons(5000);
server_addr.sin_addr.s_addr=htonl(INADDR_ANY);
if(bind(sockfd,(const struct sockaddr *)(&server_addr),sizeof(server_addr))==-1)
{
printf("bind false");
exit(1);
}
/*收发数据*/
char buf[128];
struct sockaddr_in client_addr;
int fromlen=sizeof(client_addr);
recvfrom(sockfd,buf,128,0,(struct sockaddr *)(&client_addr),&fromlen);
printf("the message is from :%s\n",inet_ntoa(client_addr.sin_addr));
printf("the message received is :%s\n",buf);
/*结束连接*/
close(sockfd);
}


客户端程序

#include<stdio.h>
#include<stdlib.h>
#include<string.h>
#include<unistd.h>
#include<sys/types.h>
#include<sys/socket.h>
#include<netinet/in.h>/*定义了struct sockaddr_in*/
void main()
{
/*创建socket*/
int sockfd=socket(AF_INET,SOCK_DGRAM,0);
if(sockfd==-1)
{
printf("create socket false");
exit(1);
}
/*设置服务器地址*/
struct sockaddr_in server_addr;
server_addr.sin_family=AF_INET;
server_addr.sin_port=htons(5000);
server_addr.sin_addr.s_addr=inet_addr("192.168.137.246");

/*收发数据*/
printf("please enter your message\n");
char buf[128];
scanf("%s",buf);
sendto(sockfd,buf,128,0,(const struct sockaddr *)(&server_addr),sizeof(server_addr));
/*结束连接*/
close(sockfd);
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: