简单的,使用套接字实UDP通信(循环服务器)
2016-12-09 10:49
330 查看
/*udp_server.c*/
#include <stdio.h> #include <stdlib.h> #include <string.h> #include <sys/socket.h> #include <netinet/in.h> #define N 100 int main() { int sockfd; struct sockaddr_in servaddr; struct sockaddr_in cliaddr; socklen_t clilen; char msg ; int ret; int i; int n; int opt = 1; sockfd = socket(AF_INET,SOCK_DGRAM,0); if(sockfd == -1) { printf("socket errpor!\n"); exit(-1); } ret = setsockopt(sockfd,SOL_SOCKET,SO_REUSEADDR,&opt,sizeof(opt)); if(ret == -1) { printf("setsockopt error!\n"); exit(-1); } bzero(&servaddr,sizeof(servaddr)); servaddr.sin_family = AF_INET; servaddr.sin_addr.s_addr = htonl(INADDR_ANY); servaddr.sin_port = htons(8000); ret = bind(sockfd,(struct sockaddr *)&servaddr,sizeof(servaddr)); if(ret == -1) { printf("bind error!\n"); exit(-1); } clilen = sizeof(cliaddr); while(1) { n = recvfrom(sockfd,msg,N,0,(struct sockaddr*)&cliaddr,&clilen); if(n == 0) { printf("client is closed!\n"); break; } msg = '\0'; printf("recv:%s",msg); for(i = 0; i < n; i++) { if(msg[i] >= 'a' && msg[i] <= 'z') { msg[i] -= 32; } } printf("send:%s",msg); sendto(sockfd,msg,n,0,(struct sockaddr*)&cliaddr,sizeof(cliaddr)); } close(sockfd); return 0; }
/*udp_client.c*/
#include <stdio.h> #include <stdlib.h> #include <string.h> #include <sys/socket.h> #include <netinet/in.h> #define N 100 int main(int argc,char **argv) { int sockfd; struct sockaddr_in servaddr; char sendbuf ; char recvbuf ; int n; int ret; if(argc != 2) { printf("usage:server <ip address>\n"); exit(-1); } sockfd = socket(AF_INET,SOCK_DGRAM,0); if(sockfd == -1) { printf("socket error!\n"); exit(-1); } bzero(&servaddr,sizeof(servaddr)); servaddr.sin_family = AF_INET; servaddr.sin_addr.s_addr = inet_addr(argv[1]); servaddr.sin_port = htons(8000); while(fgets(sendbuf,N,stdin) != 0) { sendto(sockfd,sendbuf,strlen(sendbuf),0,(struct sockaddr *)&servaddr,sizeof(servaddr)); n = recvfrom(sockfd,recvbuf,N,0,NULL,NULL); recvbuf = '\0'; printf("recv:%s",recvbuf); } close(sockfd); return 0; }
相关文章推荐
- 使用UDP套接字实现简单的通信
- UNIX环境高级编程学习之第十六章网络IPC:套接字 - 简单UDP Socket 通信
- 如何使用TCP/IP与服务器进行通信-一个简单的聊天程序
- [转] 最简单的使用UDP通信的Python Socket例子
- SCUT引擎简单使用三-服务器间通信简单介绍
- 基于TCP/UDP的Socket网络通信系列之客户端与服务器的简单对话(三)
- java使用UDP来进行客户端和服务器端通信的简单例子
- 简单的,使用套接字实现TCP通信(用线程实现并发)
- UDP简单实现并发服务器和客户端简单通信
- 网络编程:使用Socket实现简单的服务器和客户端的通信
- 2.使用MFC的CSocket类建立简单的UDP通信
- 如何使用TCP/IP与服务器进行通信-一个简单的聊天程序
- 004.UDP--拼接UDP数据包,构造ip头和udp头通信(使用原始套接字)
- C#使用 UdpClient 类进行简单通信的例子
- 简单的,使用套接字进行TCP通信(使用进程实现并发)。
- Java 利用套接字Socket实现简单的服务器与客户端通信
- java使用UDP来进行客户端和服务器端通信的简单例子
- 简单使用SOCKET,TCP,UDP模式之间的通信
- Linux C实现简单的UDP服务器客户端通信
- udp 双机通信(服务器循环检测)2