socket的UDP通信简单例子
2017-01-05 19:12
363 查看
#include <stdio.h>
#include <sys/socket.h> #include <netinet/in.h> #include <netdb.h> #define MAX_MSG 512 int main() { int sockfd,nBytes; struct sockaddr_in addr; char recvbuff[MAX_MSG],sendbuff[MAX_MSG]; sockfd=socket(AF_INET,SOCK_DGRAM,0); if(sockfd<0) { printf("socket erro\n"); return -1; } addr.sin_family=AF_INET; addr.sin_port=htons(6666); addr.sin_addr.s_addr=htonl(INADDR_ANY); while(fgets(sendbuff,MAX_MSG,stdin)!=NULL) { nBytes=sendto(sockfd,sendbuff,MAX_MSG,0,(const struct sockaddr*)&addr,sizeof(addr)); if(nBytes<0) { printf("sendbuff erro\n"); return -1; } nBytes=recvfrom(sockfd,recvbuff,MAX_MSG,0,NULL,NULL); if(nBytes<0) { printf("recvbuff erro\n"); return -1; } fputs(recvbuff,stdout); } close(sockfd); return 0; }
#include <stdio.h>
#include <sys/socket.h>
#include <netinet/in.h>
#include <netdb.h>
#define MAX_MSG 512
int main()
{
int sockfd,nBytes;
struct sockaddr_in addr;
char recvbuff[MAX_MSG];
socklen_t len;
sockfd=socket(AF_INET,SOCK_DGRAM,0);
if(sockfd<0)
{
printf("socket erro\n");
return -1;
}
addr.sin_family=AF_INET;
addr.sin_port=htons(6666);//将短整型转换为网络字节序
//INADDR_ANY为默认地址,0.0.0.0,即监听所有
addr.sin_addr.s_addr=htonl(INADDR_ANY);//将长整型转化为网络字节序
if(bind(sockfd,(struct sockaddr*)&addr,sizeof(addr))<0)//绑定
{
printf("bind erro\n");
return -1;
}
len=sizeof(addr);
while(1)
{
nBytes=recvfrom(sockfd,recvbuff,MAX_MSG,0,(struct sockaddr*)&addr,&len);
if(nBytes<0)
{
printf("recvbuff erro\n");
return -1;
}
fputs(recvbuff,stdout);
nBytes=sendto(sockfd,recvbuff,MAX_MSG,0,(const struct sockaddr*)&addr,sizeof(addr));
if(nBytes<0)
{
printf("recvbuff erro\n");
return -1;
}
}
close(sockfd);
return 0;
}
相关文章推荐
- linux C ----- udp, tcp, unix socket通信简单例子
- [转] 最简单的使用UDP通信的Python Socket例子
- C/S 架构的简单Socket 通信的例子
- C# Socket简单例子(服务器与客户端通信)
- linux下java程序与C语言程序通过SOCKET通信的简单例子
- java使用UDP来进行客户端和服务器端通信的简单例子
- C#简单的UDP通信例子
- UNIX环境高级编程学习之第十六章网络IPC:套接字 - 简单UDP Socket 通信
- C# Socket简单例子(服务器与客户端通信)
- Linux下两个程序进行socket通信的简单例子
- 一个最简单的socket通信的例子
- 一个最简单的Socket通信例子
- 【socket编程】一个简单的基于UDP的客户/服务端例子(vs2008)
- socket通信简单例子
- linux下socket通信,server和client简单例子
- Flex 与 C# socket 通信(最简单的例子)
- linux下java程序与C语言程序通过SOCKET通信的简单例子
- UDP网络通信的简单例子
- Linux下的UDP Socket简单例子
- linux下socket通信,server和client简单例子(三)