Java网络编程之简易聊天室的实现
作者:小虚竹and掘金 发布时间:2022-05-05 22:23:45
标签:Java,聊天室
一、题目描述
题目实现:运行客户端,连接服务器。
二、解题思路
首先需要启动上题的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(); // 调用连接方法
}
}
服务端等待连接
启动客户端
查看服务端的状态显示
来源:https://juejin.cn/post/7155075344364634120


猜你喜欢
- 一、概述1、XMLReader为抽象类,其派生类有:XmlDictionaryReaderXmlNodeReaderXmlTextReade
- 楔子近期公司程序被安全扫描出 远程主机允许明文身份验证 中风险漏洞,查了下修复方案,RabbitMQ官方提供了SSL连接方式,而且 Spri
- 浅谈java 执行jar包中的main方法通过 OneJar 或 Maven 打包后 jar 文件,用命令:java -jar ****.j
- drawerLayout是Support Library包中实现了侧滑菜单效果的控件,可以说drawerLayout是因为第三方控件如Men
- 在系统的管理员有着实际的应用,对于一个数据库管理系统来说,数据库安全还是挺重要的,所以在存入到数据库的密码通常都是加密的。即使有着hack攻
- Java 本身就自带 JS 引擎,自从 Java 1.6 开始就支持了,愈来愈好。我对 js 比较熟悉,因此有个大胆的想法,为什么不用自带
- sqlite是啥?1、一种轻型数据库2、关系型数据库3、占用资源很低,几百K内存,适合嵌入式设备4、支持windows、linux、unix
- 我们常常需要对数据进行查找,修改,查找数据有许多方法,我们先看看最简单的顺序查找int main(){int i, k = 0;scanf(
- 你要学会:流的概念处理字节流的类处理字符流的类Java标准输入输出文件管理类Java语言的输入输出类库1.流的概念流是指计算机各部件之间的数
- 在没讲.net如何随机生成汉字之前先给大家讲下汉字编码组成及原理。1、汉字编码原理到底怎么办到随机生成汉字的呢?汉字从哪里来的呢?是不是有个
- 本文为大家解析了java原码补码反码的关系,供大家参考,具体内容如下原码:不管源数据是十进制还是十六进制,统统将数字转成二进制形式反码:把原
- 前言使用输入框时产品常常会有一些需求,比如123456789变成123-456-789或者限制一些字符的输入等等。很多时候都是网上搜索就完事
- 本文实例讲述了Android编程实现仿QQ发表说说,上传照片及弹出框效果。分享给大家供大家参考,具体如下:代码很简单,主要就是几个动画而已,
- Collection 接口 :Collection是最基本的集合接口,声明了适用于JAVA集合(只包括Set和List)的通用方法。Set和
- java向服务端发送GET和POST请求package com.hongyuan.test;import java.io.BufferedR
- 序本文主要研究一下java9 gc log参数的迁移。统一JVM及GC的Loggingjava9引进了一个统一的日志框架,把gc相关的log
- 前言:如果简单地拍照片并非您应用的主要目标,那么您可能希望从相机应用中获取图片并对该图片执行一些操作。一、这就是第一种方法,比较简单,不用将
- 突然学到了,所以就放到博客上来共享一下,权当是学习日记吧。首先说明一下,数组是引用类型的,所以注意不要在复制时复制了地址而没有复制数值哦!其
- 协程源码的结构在研究Kotlin源码之前,得先搞懂Kotlin源码结构分布。不然找不到该看哪里的代码。看源码之前当然先得有一个目标,最好是带
- 一、实现方式@ConfigurationProperties 注解(最好加上前缀prefix=“person”,标明是和配置文件中哪个开头的