这是一个使用原生java socket实现的简易的聊天工具demo, 界面使用java swing
界面如下:
----------
项目目录结构
代码:
https://gitee.com/kunlunsoft/inetAdress_socket.git
d代码核心注意事项:
1.服务器socket 对客户端socket的监听应该放在线程中,否则界面会阻塞,"死机";
new Thread(new Runnable() { @Override public void run() { try { client = server.accept(); System.out.println("有客户端连接成功 :" + client.getLocalAddress().getHostAddress()); ServerApp.isConnected = true; reader = new BufferedReader(new InputStreamReader( client.getInputStream())); out = new PrintStream(client.getOutputStream()); out.println(Constant2.CRLF_newLine_placeholder + "connect successfully"); } catch (IOException e) { e.printStackTrace(); System.out.println("error"); return; } } }).start();
2.通过socket读取聊天信息时要使用两重循环
第一次(最外层)循环是死循环,目的是持续监听socket输入流,判断是否有聊天信息;
第二层循环 是用于读取socket,如果没有可读取的内容,则会退出该循环.
3,如果连续两次循环都没有读取到内容,则说明socket连接异常断开了
代码:
https://gitee.com/kunlunsoft/inetAdress_socket.git
netty版本的简易聊天工具:
依赖:
<!-- https://mvnrepository.com/artifact/io.netty/netty-all --> <dependency> <groupId>io.netty</groupId> <artifactId>netty-all</artifactId> <version>4.1.21.Final</version> </dependency>
相关推荐
在本文中,我们将深入探讨如何使用Java的Socket编程来实现一个简单的基于P2P(Peer-to-Peer)范型的即时聊天系统。P2P网络架构允许每个节点既是客户端也是服务器,这种模式使得数据传输更加分散,提高了系统的可扩展...
Java Socket GUI 小 Demo 是一个基于Java编程语言实现的客户端-服务器通信的应用示例,它结合了Socket编程和图形用户界面(GUI)技术。Socket编程是网络编程的基础,用于在不同计算机之间建立连接并交换数据。GUI则...
在Java编程领域,实现一个聊天应用的Demo是一个常见的学习任务,它可以帮助开发者理解网络通信、多线程以及数据传输的基本原理。在这个Java实现聊天demo中,我们主要关注以下几个关键知识点: 1. **Java Socket编程...
在这个"java-客户端和服务端的聊天demo.zip"压缩包中,提供了一个基于TCP协议的简单在线聊天示例,非常适合初学者理解网络编程的基本概念和工作原理。 TCP(传输控制协议)是一种面向连接的、可靠的、基于字节流的...
Java即时通讯系统是一种基于网络的通信应用程序,它允许用户实现实时的信息交换,类似于QQ这样的流行聊天工具。这个Demo展示了如何使用Java编程语言构建这样一个系统的基础架构和核心功能。在这个项目中,我们可以...
这个简单的`maven-socket连接demo`为你提供了一个基础的起点,你可以在此基础上扩展出更复杂的实时通信应用,例如聊天应用、实时数据监控或多人在线游戏等。理解并掌握`Maven`的构建流程、`Socket.IO`的事件驱动机制...
在这个"网上很多基于Socket的聊天实现都是不完整的,结合自己的经验写了个完整的Demo"项目中,作者通过创建一个具体的Demo来展示如何利用Socket进行完整的聊天应用开发。这个Demo主要针对Android平台,从文件名...
本项目是一个基于Java实现的多人聊天系统,它包括客户端(ClientDemo.java)和服务器端两部分,旨在提供一个实时、互动的通信平台,允许多个用户通过网络进行对话交流。这个系统的核心在于利用Java的Socket编程来...
用累加器,以对话状态存储起来,创建EJB对象,并将当前的计数器初始化,调用每一个EJB对象的count()方法,保证Bean正常被激活和钝化,EJB对象是用完毕,从内存中清除…… Java Socket 聊天通信演示代码 2个目标文件...
在这个"用Java编写的聊天工具"项目中,我们可以深入理解Java网络编程、多线程以及GUI设计等核心概念。 首先,让我们来看看Java网络编程。在这个聊天工具中,最基础的部分是客户端和服务器之间的通信。Java提供了...
Socket+JDBC+IO实现Java文件上传下载器DEMO详解 本资源详解了使用Socket+JDBC+IO实现Java文件上传下载器的DEMO,涵盖了用户注册、用户登录、文件上传、文件下载、文件更新、文件删除、查看数据库所有文件、查看文件...
在Android应用开发中,Socket通常用于实现客户端与服务器之间的通信,例如即时聊天应用、文件传输应用等。下面我们将深入探讨Socket的基本使用、注意事项以及交互流程。 1. **Socket基础知识**: - **Socket接口**...
用累加器,以对话状态存储起来,创建EJB对象,并将当前的计数器初始化,调用每一个EJB对象的count()方法,保证Bean正常被激活和钝化,EJB对象是用完毕,从内存中清除…… Java Socket 聊天通信演示代码 2个目标文件...
在Android平台上,Socket通信是应用程序之间进行数据交换的重要方式,特别是在需要实时通信或者低延迟的场景下,如游戏、聊天应用等。`io.socket`库是Android开发者常用来实现WebSocket和TCP/IP Socket通信的一个...
一旦服务器运行,AS3客户端(SocketDemo2.fla)可以连接到服务器,显示聊天界面,允许用户输入并发送消息,同时接收并显示其他用户的消息。 总的来说,这个项目涵盖了网络编程的关键概念,包括客户端-服务器通信、...
Java简单聊天器模拟是一个基于网络通信的项目,主要利用了Socket编程来实现客户端与服务器端的交互。在本文中,我们将深入探讨这个项目的核心概念、技术实现和应用场景。 首先,我们要理解Socket的基本概念。Socket...
在IT领域,网络通信是至关重要的部分,而`socket`编程是实现这一目标的基础工具。本示例将探讨如何利用`socket`进行多线程通信,实现长连接,并且包含心跳检测机制,允许系统自动关闭无响应的连接。我们将深入讨论...
通过这个30分钟的小Demo,开发者可以快速了解Socket在即时通信中的应用,为进一步开发复杂的聊天应用或协作工具奠定基础。同时,这个项目也提供了一个实战平台,帮助开发者实践网络编程和多线程等关键技能。
WebSocket是Web交互技术的一种革新,它为实时双向通信提供了低延迟、高效率的...通过这个"Java WebSocket 多人聊天室Demo",我们可以深入了解WebSocket的工作原理以及如何在Java环境中实现WebSocket服务器和客户端。