?? test2.c
字號:
#include <stdio.h>#include <stdlib.h>#include <unistd.h>#include <sys/types.h>#include <sys/socket.h>#include <arpa/inet.h>#include <string.h>#include <errno.h>#define BUFFER_SIZE 1024char *banner = "Hello world!";int main(int argc, char **argv){ int fd; if (argc < 3) { fprintf(stdout, "Usage: %s <ip> <port>\n", argv[0]); return 0; } if ((fd = socket(PF_INET, SOCK_DGRAM, 0)) < 0) { fprintf(stderr, "Create UDP socket failed: %s\n", strerror(errno)); exit(1); }#ifdef _DEBUG_ fprintf(stdout, "Created a new UDP socket %d\n", fd);#endif char buf[BUFFER_SIZE]; memset(buf, 0, sizeof(buf)); struct sockaddr_in remote_address; struct sockaddr_in peer_address; socklen_t peer_address_length; int n; memset(&remote_address, 0, sizeof(remote_address)); remote_address.sin_family = PF_INET; remote_address.sin_addr.s_addr = inet_addr(argv[1]); remote_address.sin_port = htons(atoi(argv[2])); //memcpy(buf, banner, strlen(banner)); //char *fgets(char *s, int size, FILE *stream); fgets(buf, sizeof(buf), stdin); //ssize_t sendto(int s, const void *buf, size_t len, int flags, const struct sockaddr *to, socklen_t tolen); n = sendto(fd, buf, strlen(buf), 0, (struct sockaddr *) &remote_address, sizeof(remote_address));#ifdef _DEBUG_ fprintf(stdout, "Sent %d bytes to remote host %s:%d\n", n, argv[1], atoi(argv[2]));#endif memset(buf, 0, sizeof(buf)); peer_address_length = sizeof(peer_address); //ssize_t recvfrom(int s, void *buf, size_t len, int flags, struct sockaddr *from, socklen_t *fromlen); n = recvfrom(fd, buf, sizeof(buf), 0, (struct sockaddr *) &peer_address, &peer_address_length);#ifdef _DEBUG_ fprintf(stdout, "Received %d from remote host %s:%d\n", n, inet_ntoa(peer_address.sin_addr), ntohs(peer_address.sin_port));#endif fprintf(stdout, "Message from remote: %s\n", buf); close(fd); return 0;}
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -