Java网络编程之简易聊天室的实现

作者:小虚竹and掘金 时间:2022-05-05 22:23:45 

一、题目描述

题目实现:运行客户端,连接服务器。

二、解题思路

首先需要启动上题的ServerSocketFrame服务,这样客户端运行时,才能连接上服务器。

创建一个类:ClientSocketFrame,继承JFrame

通过Socket类创建到指定服务器和端口的套接字对象。

实例化Socket对象

socket = new Socket("127.0.0.1", 9527); // 127.0.0.1 代表的是本地IP

三、代码详解

ClientSocketFrame

package com.xiaoxuzhu;
import java.awt.BorderLayout;
import java.net.*;
import javax.swing.*;
import javax.swing.JScrollPane;

/**
* Description:
*
* @author xiaoxuzhu
* @version 1.0
*
* <pre>
* 修改记录:
* 修改后版本        修改人修改日期修改内容
* 2022/5/29.1    xiaoxuzhu2022/5/29    Create
* </pre>
* @date 2022/5/29
*/

public class ClientSocketFrame extends JFrame { // 创建类继承JFrame类
   private Socket socket; // 声明Socket对象
   private JTextArea ta_info = new JTextArea(); // 创建JtextArea对象

public ClientSocketFrame() { // 构造方法
       super(); // 调用父类的构造方法
       setTitle("建立客户端套接字");
       setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
       setBounds(100, 100, 254, 166);
       final JScrollPane scrollPane = new JScrollPane();
       getContentPane().add(scrollPane, BorderLayout.CENTER);
       scrollPane.setViewportView(ta_info);
   }

private void connect() { // 连接套接字方法
       ta_info.append("尝试连接......\n"); // 文本域中信息信息
       try { // 捕捉异常
           socket = new Socket("127.0.0.1", 9527); // 实例化Socket对象
           ta_info.append("完成连接。\n"); // 文本域中提示信息
       } catch (Exception e) {
           e.printStackTrace(); // 输出异常信息
       }
   }

public static void main(String[] args) { // 主方法
       ClientSocketFrame clien = new ClientSocketFrame(); // 创建本例对象
       clien.setVisible(true); // 将窗体显示
       clien.connect(); // 调用连接方法
   }
}

服务端等待连接

Java网络编程之简易聊天室的实现

启动客户端

Java网络编程之简易聊天室的实现

查看服务端的状态显示

Java网络编程之简易聊天室的实现

来源:https://juejin.cn/post/7155075344364634120

标签:Java,聊天室
0
投稿

猜你喜欢

  • 聊一聊jdk1.8中的ArrayList 底层数组是如何扩容的

    2023-11-16 08:55:50
  • SpringBoot打包发布到linux上(centos 7)的步骤

    2023-08-11 06:35:55
  • Java内存区域和内存模型讲解

    2023-11-26 12:08:39
  • tomcat部署java web项目遇到的问题及解决方法

    2023-08-04 23:44:27
  • Java语言读取配置文件config.properties的方法讲解

    2023-09-29 14:45:51
  • 分享几个Java工作中实用的代码优化技巧

    2023-11-28 12:04:50
  • 使用@Autowired注解有错误提示的解决

    2023-11-09 20:44:57
  • 学习Java HashMap,看这篇就够了

    2023-11-11 11:18:56
  • Spring Boot整合流控组件Sentinel的场景分析

    2023-06-22 19:27:53
  • 详解SpringCloud Ribbon 负载均衡通过服务器名无法连接的神坑

    2021-06-01 07:28:41
  • IDEA编译报错:Error:java:无效的源发行版:17的解决办法

    2023-08-25 10:38:06
  • Java的接口和抽象类深入理解

    2023-01-26 02:19:22
  • Java实现在PPT中创建SmartArt图形的示例代码

    2022-01-16 06:22:52
  • Nacos 动态服务发现、配置和服务管理平台初体验

    2022-09-10 23:56:53
  • java实现分页显示效果

    2021-12-29 20:17:43
  • Java中多媒体文件上传及页面回显的操作代码

    2021-11-21 09:45:31
  • 使用Mybatis-Plus时的SqlSessionFactory问题及处理

    2022-01-30 07:40:04
  • 三道java新手入门面试题,通往自由的道路--锁+Volatile

    2023-09-04 20:33:42
  • 简述Mybatis增删改查实例代码

    2023-03-06 18:07:53
  • Struts 2中的constant配置详解

    2023-11-10 08:18:18
  • asp之家 软件编程 m.aspxhome.com