📄 sender.c
字号:
#include <stdio.h>#include <stdlib.h>#include <sys/socket.h>#include <netinet/in.h>#include <netdb.h>#include <string.h>#include <fcntl.h>#include <arpa/inet.h>#include <errno.h>#define PORT 9999main(int argc, char **argv){int sock_fd;char buf[256];struct sockaddr_in address;struct hostent *host;if (argc != 2) { printf("Usage: %s IP/hostname [content]\n", argv[0]); exit(255); }if ((sock_fd = socket(AF_INET, SOCK_DGRAM, 0)) < 0) { printf("Socket error!\n"); exit(255); }if (inet_aton(argv[1], &address.sin_addr) != 0) { host = gethostbyaddr((char *)&address.sin_addr, 4, AF_INET); printf("Address information of IP %s\n", argv[1]); }else { host = gethostbyname(argv[1]); printf("Address information of hostname %s\n", argv[1]); }if (host == NULL) { printf("No address information of %s\n", argv[1]); exit(255); }bzero(&address, sizeof(struct sockaddr_in));address.sin_family = AF_INET;address.sin_port = htons(PORT);address.sin_addr = *((struct in_addr *)host->h_addr);printf("Enter your content:");gets(buf);//scanf("%[^\n]\n", buf);//strcpy(buf, argv[2]);if (sendto(sock_fd, buf, sizeof(buf), 0, (struct sockaddr *)&address, sizeof(struct sockaddr_in)) == -1) { printf("Send message to %s error!\n", inet_ntoa(address.sin_addr)); exit(255); }if (close(sock_fd) == -1) { printf("Close file error!\n"); exit(255); }exit(0);}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -