本文介绍了如何在c中设置UDP套接字中的源端口?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
谁能告诉我如何在 UDP 套接字中设置源端口地址?我的客户端应用程序需要将数据包从 57002 端口发送到服务器端口 58007 .
Can any one tell me how to set the Source port address in the UDP socket ?. My client application needs to send the Packets from the 57002 port to the server port 58007 .
推荐答案 #include <sys/types.h> #include <sys/socket.h> #include <netinet/in.h> #include <arpa/inet.h> #include <string.h> #include <stdio.h> #include <stdlib.h> #include <unistd.h> #define DST_PORT 58007 #define SRC_PORT 57002 #define IP "127.0.0.1" int main(int argc, char *argv[]) { struct sockaddr_in addr, srcaddr; int fd; char message[] = "Hello, World!"; if ((fd = socket(AF_INET, SOCK_DGRAM, 0)) < 0) { perror("socket"); exit(1); } memset(&addr, 0, sizeof(addr)); addr.sin_family = AF_INET; addr.sin_addr.s_addr = inet_addr(IP); addr.sin_port = htons(DST_PORT); memset(&srcaddr, 0, sizeof(srcaddr)); srcaddr.sin_family = AF_INET; srcaddr.sin_addr.s_addr = htonl(INADDR_ANY); srcaddr.sin_port = htons(SRC_PORT); if (bind(fd, (struct sockaddr *) &srcaddr, sizeof(srcaddr)) < 0) { perror("bind"); exit(1); } while (1) { if (sendto(fd, message, sizeof(message), 0, (struct sockaddr *) &addr, sizeof(addr)) < 0) { perror("sendto"); exit(1); } sleep(1); } return 0; }更多推荐
如何在c中设置UDP套接字中的源端口?
发布评论