本程序说明了如何建立一个可以接收UDP客户端数据的UDP 服务器
2016-10-20 21:44
561 查看
/************************************************************ *FileName : udp_server.c *description : 本程序说明了如何建立一个可以接收UDP客户端的UDP * 服务器。注意:使用网络调试助手要指定服务器的IP与Port. *version : 1.0 *history : none *************************************************************/ #include <stdio.h> #include <stdlib.h> #include <string.h> #include <unistd.h> #include <sys/socket.h> #include <netinet/in.h> #include <arpa/inet.h> int main(int argc, char * argv [ ]) { unsigned short port = 8000; if (argc > 1) { port = atoi(argv[1]); } //创建套接字 int sockfd; sockfd = socket(AF_INET, SOCK_DGRAM, 0); if (sockfd < 0) { perror("socket"); exit(-1); } //填充本服务器的信息 struct sockaddr_in my_addr; bzero(&my_addr,sizeof my_addr); my_addr.sin_family = AF_INET; my_addr.sin_port = htons(port); my_addr.sin_addr.s_addr = htonl(INADDR_ANY); //绑定本程序要使用的信息 int err_log; err_log = bind(sockfd,(struct sockaddr *)&my_addr,sizeof my_addr); if (err_log != 0) { perror("bind"); close(sockfd); exit(-1); } printf("receive data...\n"); //接收数据 while (1) { int recv_len; char recv_buf[512] = ""; struct sockaddr_in client_addr; char cli_ip [INET_ADDRSTRLEN] = ""; socklen_t cliaddr_len = sizeof client_addr; recv_len = recvfrom(sockfd,recv_buf,sizeof recv_buf,0,(struct sockaddr *)&client_addr,&cliaddr_len); inet_ntop(AF_INET,&client_addr.sin_addr,cli_ip,INET_ADDRSTRLEN); printf("\nip:%s,port:%d\n",cli_ip,ntohs(client_addr.sin_port)); printf("data(%d):%s\n",recv_len,recv_buf); } }
相关文章推荐
- 本程序说明了如何建立一个简单的可以接收UDP服务器数据的UDP客户端
- 一个简单的可以接收TCP客户端数据的TCP服务器
- 一个简单的可以接收TCP服务器数据的TCP客户端
- C# 建立UDP服务器并接收客户端数据
- C# 建立UDP服务器并接收客户端数据
- Java编写一个简单的TCP通信程序。服务器发送一条字符串,客户端接收该信息并显示。
- 如何实现 客户端仅用一个IP地址,就可以连接到不同的服务器上
- 客户端C和服务器S之间建立一个TCP连接,该连接总是以1KB的最大段长发送TCP段,客户端C有足够的数据要发送。当拥塞窗口为16KB的时候发生超时,如果接下来的4个RTT往返时间内的TCP段的传输是成
- 回射程序3(客户端)——客户服务器不定长接收数据
- uip UDP 服务器广播模式(客户端可以任意端口,并且主动向客户端发送数据)
- uip UDP 服务器广播模式(客户端可以任意端口,并且主动向客户端发送数据) (转)
- 由一个论坛帖子, 解决udp 服务器无法返回数据给第一个客户端的问题
- 【实验 1-2】编写一个简单的 UDP 服务器和 UDPP 客户端程序。程序均为控制台程序窗口。
- uip UDP 服务器广播模式(客户端可以任意端口,并且主动向客户端发送数据)
- 黑马程序员--建立一个Udp传输服务进行数据的传输和接收
- 一个简单的socket服务端和客户端程序:客户端发送数据给服务端,服务端接收到数据后再给客户端发送数据
- C#编写的UDP收发数据 单独的接收数据程序可以用 但是写的接收和发送的不好使
- 一个简单的UDP程序—C++服务器和C# .NET客户端
- 使用TCP协议编写一个网络程序,设置服务器端的监听端口是8002,当与客户端建立连接后,服务器端向客户端发送数据“Hello, world”,客户端收到数据后打印输出。
- 使用TCP协议编写一个网络程序,设置服务器端的监听端口是8002,当与客户端建立连接后,服务器端向客户端发送数据“Hello, world”,客户端收到数据后打印输出。