📄 client.c
字号:
#include <sys/types.h>
#include <sys/socket.h>
#include <stdio.h>
#include <arpa/inet.h>
#include <errno.h>//modify#include <stdlib.h>#include <string.h>#include <netdb.h>#include <netinet/in.h>
void main(int argc,char**argv){
int sockfd,readlen;
struct sockaddr_in servaddr;
char buffer[1024];
//modify
struct hostent *host;
if(argc!=2){
fprintf(stderr,"usage:%s <server address> \n ",argv[0]);
exit(0);
}
//modify
if((host=gethostbyname(argv[1]))==NULL) //gethostbyname将主机名转换为IP地址
{
perror("gethostbyname");
exit(1);
}
sockfd=socket(AF_INET,SOCK_STREAM,0);
if(sockfd<0){
fprintf(stderr,"socket creating error!\n ");
exit(1);
}
memset(&servaddr,0,sizeof(struct sockaddr_in));
servaddr.sin_family=AF_INET;
servaddr.sin_port=htons(3333);
//modify
servaddr.sin_addr=*((struct in_addr *)host->h_addr);bzero(&(servaddr.sin_zero),8);
if(connect(sockfd,(struct sockaddr * )(&servaddr),sizeof(struct sockaddr))<0){
fprintf(stderr,"connection error!%s\n",strerror(errno));
exit(0);
}
printf("connect to server %s\n",argv[1]);
while(fgets(buffer,1024,stdin)!=NULL){
write(sockfd,buffer,strlen(buffer));
printf(buffer);
readlen=read(sockfd,buffer,1024);
if(readlen>0){
buffer[readlen]='\0';
printf("read from server ;%s",buffer);
}
else if(readlen<0){
fprintf(stderr,"read\n");
exit(0);
}
}
close(sockfd);
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -