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

📄 client.c

📁 练习
💻 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 + -