通过网络交互完成单词查询

        这个作业已经布置挺久了,最开始两天只是完成了框架内容的填充(框架由老师提供),解决了各种报错,但是陷入了一个更烦的阶段——有很多看不见的错误。前面放弃了一段时间,这两天突发奇想回来反工一下,还好功夫不负有心人,做了两天总算完成了。

目录

程序介绍       

首先客户端和服务端的搭建

登录注册界面

查询界面

编写的时候遇到的其他问题:

最后附上我的代码:

客户端:

服务端:


程序介绍       

        该程序分为了客户端和服务端两端,通过网络交互进行查询;前面加入了登录和注册的操作,登录成功以后才能进行查询单词的操作。对于登录和注册的操作利用了数据库(sqlite3)的操作,实现数据的保存,不至于每次都需要先重新注册才能登录。

首先客户端和服务端的搭建

        是网络交互的第一步,套接字的创建,网络信息的绑定,网络的连接建立。

客户端:先创建套接字文件,然后声明自己的主机信息(包括网络地址,端口号,交互网络类型)再声明想要连接的服务端的主机信息。最后向客户端发送连接请求。

服务端:也是先创建套接字文件,然后声明自己的主机信息,再进行数据监听,最后从监听到的客户端中提取第一个客户进行连接操作并创建新的套接字文件。

实现代码如下:

sockfd = socket(AF_INET,SOCK_STREAM,0);        //选择TCP交互,ipv4网络

struct sockaddr_in serveraddr;
serveraddr.sin_family=AF_INET;                  //本机信息
serveraddr.sin_port=htons(8888);
serveraddr.sin_addr.s_addr=inet_addr("192.168.3.143");

bind(serverfd,(struct sockaddr *)&serveraddr,sizeof(serveraddr)); //绑定信息
//连接分两种
//客户端
connect(sockfd,(struct sockaddr *)&serveraddr,sizeof(serveraddr));
//服务端
listen(serverfd,10);    //监听
clientfd=accept(serverfd,(struct sockaddr *)&clientaddr,&sizeof(serveraddr));//连接

        另外为了实现登录和注册的操作服务端还多了一步 —— 数据库的打开和数据库表的创建,用来存储和判断用户的账号和密码

实现代码:

sqlite3 *db;
if( sqlite3_open("./mydict.db",&db) != SQLITE_OK )  //打开数据库文件
{
    printf( "%s\n", sqlite3_errmsg(db) );
    return -1;
}
sqlite3_exec(db,"create table user(name text not null,passwd text not null)",NULL,NULL,NULL);           //在数据库文件中创建表和表内的项

登录注册界面

        该

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值