📄 client.c
字号:
/*
* client.c -- This is client program. Written by hanfi 2003-06-07
* For *NIX
*/
#include <string.h>
#include <netinet/in.h>
#include <netdb.h>
#include <sys/types.h>
#include <sys/socket.h>
#include <errno.h>
#include <stdio.h>
#include <unistd.h>
#include <time.h>
#define BUF_LEN 255
extern int errno;
int main(int argc, char *argv[]) {
int len, fromlen;
struct protoent *protos;
struct hostent *host;
struct sockaddr_in saddr;
char buf[BUF_LEN];
int sock;struct sockaddr_in from;
time_t tim;
protos = getprotobyname("udp");
switch (argc) {
case 1:
if ((host = gethostbyname("172.16.2.82")) == NULL) {
printf("gethostbyname error\n");
exit(-1);
}
saddr.sin_port = htons(5555);
break;
case 3:
if ((host = gethostbyname(argv[1])) == NULL){
printf("gethostbyname error\n");
exit(-1);
}
saddr.sin_port = htons(atoi(argv[2]));
break;
default:
printf("Usage: clnt [host port]\n");
exit(-1);
}
saddr.sin_family = AF_INET;
bcopy(host->h_addr, &saddr.sin_addr, host->h_length);
if ((sock = socket(AF_INET, SOCK_DGRAM, protos->p_proto)) < 0) {
printf("socket call error\n");
exit(-1);
}
printf("IP = %s, Port = %d\n", inet_ntoa(saddr.sin_addr), ntohs(saddr.sin_port));
strcpy(buf, "TJB");
sendto(sock, buf, strlen(buf), 0, (struct sockaddr *)&saddr, sizeof(saddr));
if ((len=recvfrom(sock,&tim,sizeof(time_t),0, (struct sockaddr *)&from,&fromlen)) == -1){
printf("recvfrom error\n");
exit(-1);
}
tim = ntohl(tim);
printf("%s\n", ctime(&tim));
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -