warning: implicit declaration of function ‘gets’ [-Wimplicit-function-declaration] gets(buf);//获取用户输入的字符串,存放到buf中 ^/tmp/ccnxjoDy.o:在函数‘main’中:tcpclient.c:(.text+0x149): 警告: the `gets' function is dangerous and should not be used.#include <stdio.h>
#include <unistd.h>
#include <strings.h>
#include <sys/types.h>
#include <sys/socket.h>
#include <netinet/in.h>
#include <netdb.h>
#include <stdlib.h>
#include <string.h>
#define PORT 1234
#define MAXDATASIZE 100
int main(int argc,char *argv[])
{
//定义变量
int sockfd,num,numw;
char buf[MAXDATASIZE];
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)
{
printf("gethostbyname() error\n");
exit(1);
}
//创建套接字
if((sockfd=socket(AF_INET,SOCK_STREAM,0))==-1)
{
printf("socket() error\n");
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(sockfd,(struct sockaddr *)&server,sizeof(server))==-1)
{
printf("connect() error\n");
exit(1);
}
while(1){
printf("Please enter a string:\n");
gets(buf);//获取用户输入的字符串,存放到buf中
if((numw=write(sockfd,buf,MAXDATASIZE))==-1){//将buf中的数据发送给服务器
printf("write error.\n");
exit(1);
}
if((num=recv(sockfd,buf,MAXDATASIZE,0))==-1)//接收从服务器发回来的已经反转的字符串
{
printf("recv() error\n");
exit(1);
}
if(!strcmp(buf,"tuiq"))
break;
buf[num-1]='\0';
printf("The reverse message:\n%s\n",buf);
}
close(sockfd);//关闭套接字
}
1 回答
- 1 回答
- 1 关注
- 3865 浏览
添加回答
举报
0/150
提交
取消