📄 unixclient.c
字号:
/* unixClient.c - simple UDP demo client */#include <unistd.h>#include <stdio.h>#include <sys/types.h>#include <sys/socket.h>#include <netinet/in.h>#include <string.h>#include <stdlib.h>#include <arpa/inet.h>#define MAX_MSG_LEN 80typedef int SOCK_FD;void error (char * str);int main ( int argc, char * argv [] ) { short port; /* Server's port number */ int inetAddr; /* Server's IP address */ struct sockaddr_in srvAddr; /* Server address */ int val; /* Value to send the server */ SOCK_FD sockFd; /* Client's socket */ char replyBuf[MAX_MSG_LEN]; /* Space for reply */ /* * Get the server port number, inet address, and * value to send */ if (argc != 4) { fprintf (stderr, "Usage: %s portNumber " "inetAddress value\n", argv[0]); exit (1); } port = (short)atoi(argv[1]); inetAddr = inet_addr(argv[2]); val = atoi(argv[3]); /* Create a socket */ if ( (sockFd = socket (PF_INET, SOCK_DGRAM, IPPROTO_UDP)) < 0) error ("socket failed"); /* Initialize servers address */ memset ((char *)&srvAddr, 0, sizeof(srvAddr)); srvAddr.sin_family = AF_INET; srvAddr.sin_port = htons(port); srvAddr.sin_addr.s_addr = inetAddr; /* Send the server the value */ if (sendto (sockFd, (char *)&val, sizeof(val), 0, (struct sockaddr * ) &srvAddr, sizeof(srvAddr)) < 0) { close (sockFd); error ("sendto failed"); } /* * Read and then print the server's reply. * (We should await the reply with select(), but * instead are lazy here. The client could block * forever in the read() call.) */ if (read (sockFd, replyBuf, MAX_MSG_LEN) < 0) { close (sockFd); error ("read failed"); } printf ("\n%s\n", replyBuf); /* Close socket */ close (sockFd); return 0; }void error (char * str) { perror (str); exit (1); }
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -