?? kehuduan.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>
#define SERVPORT 3333
#define MAXDATASIZE 100
void strcli(FILE *,int); //************jia fan hao
int main(int argc,char *argv[]){
int sockfd;
struct hostent *host;
struct sockaddr_in serv_addr;
if(argc < 2){
fprintf(stderr,"Please enter the server's hostname!\n");
exit(1);
}
if((host=gethostbyname(argv[1]))==NULL){
perror("gethostbyname");
exit(1);
}
if((sockfd=socket(AF_INET,SOCK_STREAM,0))==-1){
perror("socket");
exit(1);
}
serv_addr.sin_family=AF_INET;
serv_addr.sin_port=htons(SERVPORT);
serv_addr.sin_addr=*((struct in_addr *)host->h_addr_list[0]);
bzero(&(serv_addr.sin_zero),8);
if(connect(sockfd,(struct sockaddr *)&serv_addr,\
sizeof(struct sockaddr))==-1){
perror("connect");
exit(1);
}
strcli(stdin,sockfd);
close(sockfd);
}
void strcli(FILE *fp,int sockfd)
{
char sends[MAXDATASIZE],buf[MAXDATASIZE];
int recvbytes;
while(1)
{ printf("Please input words\n");
if(fgets(sends,MAXDATASIZE,fp)!=NULL)
{
send(sockfd,sends,strlen(sends)+1,0);
printf("sent to server:%s\n");
}
if((recvbytes=recv(sockfd,buf,MAXDATASIZE,0))!=-1)
{
buf[recvbytes]='\0';
printf("received from server:%s\n",buf);
}
}
}
?? 快捷鍵說明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -