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

📄 client.c

📁 linux下一个CS通信模型
💻 C
字号:
#include <unistd.h>
#include <sys/socket.h>
#include <netinet/in.h>
#include <netdb.h>
#include <sys/types.h>
#define PORT 2345
#define MAXDATASIZE 100
int main(int argc, char *argv[])
{
 int fd, numbytes;
 char buf[MAXDATASIZE];
 char content[20];  
 struct hostent * he;
 struct sockaddr_in server;
 if (argc != 2)
 {
  printf("Usage: %s <IP address>\n", argv[0]);
  exit(-1);
 }
 if ((he = gethostbyname(argv[1])) == NULL)
 {
  perror("gethostbyname error.");
  exit(1);
 }
 if ((fd = socket(AF_INET, SOCK_STREAM, 0)) == -1)
 {
  perror("Create socket failed.");
  exit(1);
 }
 bzero(&server, sizeof(server));
 server.sin_family = AF_INET;
 server.sin_port = htons(PORT);
 server.sin_addr =*((struct in_addr *) he->h_addr);
 if (connect(fd, (struct sockaddr *)&server, sizeof(struct sockaddr)) == -1)
 {
  perror("connect failed.");
  exit(1);
 }
 while(1)
 {

  scanf("%s",content);
  send(fd,content,strlen(content),0);
  if((strcmp(content,"quit"))!=0)
  {
   // printf("%s",content);
   if((numbytes = recv(fd, buf, MAXDATASIZE, 0)) == -1) 
   {
    perror("recv error.");
    exit(1);
   }
   buf[numbytes] = '\0';
   printf("Server Message: %s\n",buf);
  }
  else
   {
    printf("This connection is break");
	close(fd);
	exit(0);
   }
 }
 close(fd);
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -