📄 tom.c
字号:
/******* 客户端程序 tom.c ************/#include <stdlib.h>#include <stdio.h>#include <errno.h>#include <string.h>#include <unistd.h>#include <netdb.h>#include <sys/types.h>#include <netinet/in.h>#include <arpa/inet.h>#include <sys/socket.h>#define BUFSIZE 1024intmain (int argc, char *argv[]){ int sockfd; char buffer[BUFSIZE] = "I love you!"; struct sockaddr_in server_addr; int portnumber, nbytes; if (argc != 3) { fprintf (stderr, "Usage:%s hostname portnumber\a\n", argv[0]); exit (1); } if ((portnumber = atoi (argv[2])) < 0) { fprintf (stderr, "Usage:%s hostname portnumber\a\n", argv[0]); exit (1); } /* 客户程序开始建立sockfd描述符 */ if ((sockfd = socket (AF_INET, SOCK_STREAM, 0)) == -1) { fprintf (stderr, "Socket Error:%s\a\n", strerror (errno)); exit (1); } /* 客户程序填充服务端的资料 */ bzero (&server_addr, sizeof (server_addr)); server_addr.sin_family = AF_INET; server_addr.sin_port = htons (portnumber); server_addr.sin_addr.s_addr = inet_addr (argv[1]); /* 客户程序发起连接请求 */ if (connect (sockfd, (struct sockaddr *) (&server_addr), sizeof (struct sockaddr)) == -1) { fprintf (stderr, "Connect Error:%s\a\n", strerror (errno)); exit (1); } /* 发送“I love you!” */ if ((nbytes = send (sockfd, buffer, strlen (buffer), 0)) == -1) { fprintf (stderr, "Send Error:%s\n", strerror (errno)); exit (1); } memset (buffer, 0, sizeof (buffer)); /* 接收回复 */ if ((nbytes = recv (sockfd, buffer, sizeof (buffer), 0)) == -1) { fprintf (stderr, "Read Error:%s\n", strerror (errno)); exit (1); } buffer[nbytes] = '\0'; printf ("%s\n", buffer); /* 结束通讯 */ close (sockfd); exit (0);}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -