下面的程序是一个普通的UDP通信程序,在Linux环境下可以正常用gcc编译通过,也可以相互通信。我在其基础上加了一个简单的服务器回馈ACK功能。大家不妨先下载编译运行。
//UDPClient
#include <sys/types.h>
#include <sys/socket.h>
#include <netinet/in.h>
#include <arpa/inet.h>
#include <unistd.h>
#include <stdlib.h>
#include <string.h>
#include <stdio.h>
#define UDP_TEST_PORT 4848
int main(int argC, char* arg[])
{
printf("Please enter the server IP_addr:\n");
char UDP_SERVER_IP[16];
read(STDIN_FILENO, UDP_SERVER_IP, sizeof(UDP_SERVER_IP));
struct sockaddr_in addr;
int sockfd, len = 0;
int addr_len = sizeof(struct sockaddr_in);
char buf[256];
/* 建立socket,注意必须是SOCK_DGRAM */
if ((sockfd = socket(AF_INET, SOCK_DGRAM, 0)) < 0) {
perror("socket");
exit(1);
}
/* 填写sockaddr_in*/