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

📄 client1.c

📁 中科院徐志伟老师一书《操作系统 原理·技术与编程》的源代码和习题接
💻 C
字号:
#include<stdio.h>
#include<stdlib.h>
#include<errno.h>
#include<string.h>

#include<netdb.h>
#include<sys/types.h>
#include<netinet/in.h>
#include<sys/socket.h>

int main(int argc,char **argv)
{
int sockfd,numb;
struct sockaddr_in s;
struct hostent *host;
char buf[100];
int port = 8000;

if(argc!=2){
   fprintf(stderr,"usage:%s hostname\n",argv[0]);
   exit(1);
}

if(!(host=gethostbyname(argv[1])))
{
   perror("error in resolving hostname");
   exit(1);
}

sockfd=socket(AF_INET,SOCK_STREAM,0);
if(sockfd<0){
   perror("socket");
   exit(1);
}
bzero(&s,sizeof(s));
s.sin_family=AF_INET;
s.sin_addr.s_addr=((struct in_addr *)(host->h_addr))->s_addr;
s.sin_port=htons(port);

if((connect(sockfd,(struct sockaddr*)&s,sizeof(s)))!=0){
   perror("connect");
   exit(1);
}

printf("get connected!\n");
getchar();
strcpy(buf,"Give me the first file of the president's office");
if(send(sockfd,buf,strlen(buf),0)<0){
   perror("send");
   exit(1);
}

numb=recv(sockfd,buf,100,0);
if(numb<0){
   perror("recv");
   exit(1);
}
buf[numb]='\0';
printf("Received=%s\n",buf);
close(sockfd);
return 0;
}

⌨️ 快捷键说明

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