📄 client.c
字号:
#include <sys/types.h>
#include <sys/socket.h>
#include <netinet/in.h>
#include <arpa/inet.h>
#include <sys/errno.h>
#define BUFSIZE 1024
main(int argc,char *argv[]) /*参数检验*/
{
if(argc!=2)
{printf("usage:%s <port>\n",argv[0]);
exit(1);
}
int csock,i;
struct sockaddr_in saddr, caddr;
char buf[BUFSIZE];
unsigned short port;
saddr.sin_family = PF_INET; /*指定服务器地址参数*/
saddr.sin_addr.s_addr = inet_addr("127.0.0.1");
port=(unsigned short)atoi(argv[1]);
saddr.sin_port =port;
caddr.sin_family=PF_INET; /*指定客户端地址参数*/
caddr.sin_addr.s_addr= INADDR_ANY;
caddr.sin_port=INADDR_ANY;
if ((csock=socket(PF_INET,SOCK_STREAM,0)) < 0) /*创建socket连接*/
{printf("socket init error!\n");
exit(1);
}
if(bind(csock,((struct sockaddr *)&caddr),sizeof(caddr))!=0) /*绑定地址*/
{printf("bind error!\n");
exit(1);
}
if (connect(csock,((struct sockaddr *)&saddr),sizeof(saddr))==0) /*连接服务器*/
printf("connect successful\n");
for(i=0;i<2;i++) /*输入用户名、密码*/
{read(csock,buf,sizeof(buf));
printf(":%s\n",buf);
scanf("%s",buf);
write(csock,buf,sizeof(buf));
}
read(csock,buf,sizeof(buf));
if(strcmp(buf,"not logged in\n")!=0) /*判断是否登录成功*/
{ scanf("%s",buf); while(strcmp(buf,"end"))
{write(csock,buf,sizeof(buf)); /*登录成功,与服务器通信*/
read(csock,buf,sizeof(buf));
printf("return from server:%s\n",buf);
scanf("%s",buf);
}
}
else
printf("wrong password\n"); /*登录不成功*/
close(csock); /*关闭socket*/
exit(0);
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -