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

📄 client.c

📁 socket编程一个很好的例子
💻 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 + -