`
Felictiy_Peng
  • 浏览: 4483 次
  • 性别: Icon_minigender_2
最近访客 更多访客>>
社区版块
存档分类
最新评论

第一步:实现成功登录

 
阅读更多

需要准备的类有:

1:QqClientLogin:登录的入口,new三个类:User+QqClientUser+QQFriendList。

2:QqClientUser:处理的业务逻辑有: 登录,添加用户,修改资料等等后期可拓展,它再调用QqClientConServer的方法,再发送给服务器MyQqServer然后再返回。

3:MyServerFrame:服务器的界面

4:  QqClientConServer ======客户端的后台。

5:   MyQqServer           ======服务器 :new Message类。

6:在服务器和客户端的common包里:User类和Message类。这是共同的语言,这样客户端和服务器都能阅读对方的“情报”。

 

       登陆认证流程:当用户点击登录后,客户端QqClientConServer给服务器MyQqServer发送账号和密码,服务器进行验证登陆。判断是否合法。如果合法则允许登陆,跳转至好友列表界面,不合法则弹出报错窗口。详情见:图5

 

第一步:写服务器界面和服务器:MyServerFrame+MyQqServer.

               1:写服务器的启动界面 MyServerFrame。

               2:服务器 MyQqServer。 附加知识:对象流:账号和密码以及消息通过对象流在客户端和服务器之间进行传递。注:对象流要在网络间传递必须要继承:Serializable。PS:对象流需要准备好的类有:User 和Message 都放在com.qq.common中。

       第二步:User+Message

                    一:User设为一个对象:姓名和密码是属性。客户端输出流:将登录的账号和密码输出对象u给服务器。

                    二:Message:发送信息验证是否合法,可以定义一系列Message确认包,非确认包,聊天信息等。对Message规定规则:mesType 1 表示登陆成功的回送。mesType 2 表示登陆失败。mesType 3 表示普通消息包。

                      服务器输出流:将消息包Messge m,发送给客户端。

       第三步:QqClientUser : new QqClientConServer(),将对象u传给它,并且调用它的方法回溯给登录界面。

                     public class QqClientUser {

                            public  boolean checkUser(User u){

 

return new QqClientConServer().sendLoginInfoToServer(u);

}

 

}

 

       第四步:QqClientConServer: 建立客户端的socket,输出对象User 给服务器。输入服务器发来的Message包。

               public boolean sendLoginInfoToServer(Object o) {

        boolean b=false;

   try {

       Socket s= new Socket("127.0.0.1", 7777);

ObjectOutputStream oos= new ObjectOutputStream(s.getOutputStream());

oos.writeObject(o);

 

ObjectInputStream ois = new ObjectInputStream(s.getInputStream());

Message ms=(Message)ois.readObject();

if (ms.getMesType().equals("1")) {

b= true;

}

} catch (Exception e) {

}

return b;

}

}

 

      第五步:完善MyQqServer:

            public MyQqServer() {

                       try {

                         System.out.println("我是服务器我在7777号端口进行监听");

                            ServerSocket ss=new ServerSocket(7777);

                            while(true){

                                 Socket s=ss.accept();

                           //首先需要接收客服端第一次发来的登录的消息

                            ObjectInputStream ois = new ObjectInputStream(s.getInputStream());

                            User u= (User)ois.readObject();

                            System.out.println("收到从服务器发送过来的账户为:"+u.getUserid()+"密码为:"+u.getUserpasswd());

   Message m= new Message();

                                       if (u.getUserpasswd().equals("123456")) {

                                              //返回一个成功登录的信息包

                                           m.setMesType("1");

}else {

     m.setMesType("2");

}

ObjectOutputStream oos= new ObjectOutputStream(s.getOutputStream());

        oos.writeObject(m);

}

} catch (Exception e) {

}

第六步:完善好QqClientLogin,给账户框,密码框,和登录按钮增加动作监听器。

 public void actionPerformed(ActionEvent e) {

if (e.getSource()==jp1_jb1) {

QqClientUser qqclientuser=new QqClientUser();

User u=new User();

u.setUserid(jtf.getText().trim());

u.setUserpasswd(new String(jpf.getPassword()));

if(qqclientuser.checkUser(u)){

new QqFriendList();

//关闭登录界面

this.dispose();

}else {

JOptionPane.showMessageDialog(this,"用户名密码错误");

}

}

 

ps:输入输出流的线路。

客户端输出流oos:发送登录的User:用户名和密码。

图1

服务器输入流ois :接收用户名和密码User。

图2

服务器输出流oos:输出给客户端的Message包。

图3

客户端输入流ois:接收服务器来的Message包。

图4

 

  • 大小: 14 KB
  • 大小: 37.1 KB
  • 大小: 38.4 KB
  • 大小: 46.9 KB
  • 大小: 26.6 KB
分享到:
评论

相关推荐

    360浏览器无法导入收藏夹的解决方法.docx

    第一步:登陆我们的搜狗浏览器,管理我们的网络收藏夹,将其导出成HTML文件,放在桌面。 第二步:退出我们的网络收藏夹,这样我们就会看到,我们当前存储在搜狗浏览器上的一些实用习惯以及收藏夹就全部没有了。 第...

    使用花生壳+海康威视搭建远程视频监控服务参考.pdf

    第一步:注册护照、域名并登陆嵌入式花生壳服务 在本步骤中,我们需要注册花生壳的护照和域名,然后登陆嵌入式花生壳服务。注册护照可以通过 Oray 官方网站的注册页面进行,注册成功后,域名会自动赠送一个已激活...

    android studio 第五章课后实践(实现登录界面设计、记住密码操作)

    登录界面是用户与应用程序交互的第一步,它需要简洁、直观且易于使用。在Android Studio中,可以通过以下步骤创建一个基本的登录界面: 1. 创建一个新的Activity:在项目中右击“java”或“kotlin”目录,选择“New...

    使用花生壳+海康威视搭建远程视频监控服务整理.pdf

    第一步:注册护照和域名 在本步骤中,我们需要注册护照和域名。首先,我们需要访问 Oray 官方网站的注册页面,进行护照注册。在注册成功后,域名会自动赠送一个已激活花生壳服务,后缀为.gicp.net的免费域名。然后...

    运用JDBC实现一个注册登录系统的编写

    构建注册登录系统的第一步是建立数据库连接。通过`DriverManager.getConnection()`方法,我们需要提供数据库URL、用户名和密码。例如,对于MySQL,URL可能类似于`jdbc:mysql://localhost:3306/mydatabase`,其中`...

    MVC4 通用权限管理系统源码

    第一步:修改Web.config文件。 这个文件中只需要TYStudioUsersConnectionString中的用户名和密码,修改为你本地具有创建数据库的权限的用户名和密码。修改完成运行程序会系统会自动创建扩展后的Membership数据库。...

    MVC4 MemberShip权限管理系统源码20130326

    第一步:修改Web.config文件。 这个文件中只需要TYStudioUsersConnectionString中的用户名和密码,修改为你本地具有创建数据库的权限的用户名和密码。修改完成运行程序会系统会自动创建扩展后的Membership数据库。...

    .NET Core 企业微信网页授权登录.doc

    第一步:用户点击链接 用户点击登录链接,会被重定向到微信企业号的 OAuth2 授权页面。 第二步:Index 页取得回调 Code 用户授权成功后,微信企业号会将授权 Code 返回给我们的应用程序。 第三步:根据 Code 和 ...

    mfc实现类似于QQ的登陆框功能

    了解MFC的基本架构和类层次结构是实现登录框的第一步。 2. **创建对话框类**: 对话框在MFC中通常由CDialog派生的类表示。首先,我们需要创建一个新的CDialog派生类,如CLoginDlg,并在资源编辑器中设计登录对话框...

    SpringMVC是实现登陆

    实现登录功能的第一步是创建Controller。在Java中,我们可以创建一个处理HTTP请求的@Controller注解类,并定义一个处理登录请求的方法。这个方法通常会使用@RequestMapping注解来指定URL映射,比如`@RequestMapping...

    强行登陆电脑方法,自己的电脑用户名密码忘记了也可以用此方法

    ##### 第一步:重启电脑并进入安全模式 1. **重启电脑**:首先需要重启电脑。 2. **按F8键**:在电脑启动过程中,连续快速地按下F8键,直至出现高级启动选项菜单。 3. **选择“安全模式”**:在高级启动选项中选择...

    登陆小界面

    在网页设计中,登录界面是用户访问受保护内容的第一步,它要求用户提供用户名和密码,验证身份后才能继续浏览或操作。对于初学者来说,理解和创建这样一个小界面是学习JSP(JavaServer Pages)技术的基础。 【描述...

    网站的网络营销策略.docx

    **第一步:提高流量** 提高流量是网络营销的基础,主要通过以下方式实现: 1. **搜索引擎优化(SEO)**:通过对网站内容、结构和关键词的优化,提高网站在搜索引擎中的排名,从而吸引更多的自然流量。 2. **关键词...

    登陆界面,登陆界面图片,LabView源码.zip

    登陆界面是用户与应用程序交互的第一步,通常包含用户名输入框、密码输入框以及登录按钮。设计良好的登陆界面应该简洁易用,提供清晰的指示和反馈。在本压缩包中,"登陆界面"可能是一个已完成的界面设计,可能包括UI...

    企业管理系统 登陆界面

    在这个系统中,“登陆界面”是用户与系统交互的第一步,它的重要性不言而喻。登录界面的设计应该简洁易用,同时保证安全性,确保只有授权的用户能够访问系统。 在“企业管理系统 登陆界面”这个主题中,我们主要...

    网上书店登陆模块(jsp实现)

    在网页应用开发中,网上书店的登录模块是用户与系统交互的第一步,它负责验证用户的身份并提供安全的访问权限。本项目使用Java Server Pages (JSP) 技术来实现这个关键功能,JSP是一种动态网页开发技术,结合了HTML...

    ASP会员登陆系统

    登录界面是用户与系统交互的第一步,通常包含用户名和密码输入框,以及登录按钮。ASP可以通过HTML和服务器端脚本来创建这个界面。用户在输入凭据后,点击登录按钮,这些信息将被发送到服务器进行处理。 2. **...

    Django demo 简单登陆注册实现

    接着,创建用户模型是实现用户注册的第一步。在Django中,这通常通过继承`AbstractBaseUser`或`AbstractUser`来完成。不过,对于简单的应用,直接使用Django内置的`User`模型就足够了。在`models.py`文件中,你可以...

    修改QQ登陆框左上角文字 打造你的专属QQ.docx

    #### 第一步:关闭QQ程序 为了确保修改过程中不会出现任何异常或错误,首先需要完全退出QQ程序。这包括确保没有后台进程在运行。可以通过任务管理器检查是否有QQ相关的进程仍在运行,并将其结束。 #### 第二步:...

    ThinkPHP登录功能的实现方法

    第一步:在config.php文件中加上: 'USER_AUTH_KEY'=>'authId' 示例如下: <?php if(!defined('THINK_PATH')) exit(); return array( // 定义数据库连接信息 'DB_TYPE'=> 'mysql',// 指定数据库是mysql 'DB_...

Global site tag (gtag.js) - Google Analytics