⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 tom.c

📁 用五个实例来解释linux下的c编程
💻 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 + -