Java用socket与awt实现简单对话

一个用Java编写的简单聊天室 用来学习Socket编程 /* *Create on Jan 29, 2009 *Copyright 2009 Quasar20063501.All Rights reserved * *weizhaozhe */package client;import java.awt.*;import java.awt.event.ActionEvent;import java.awt.eve 阅读详情

客户端

public class RoomClient01 implements ActionListener {
	static TextArea textArea;
	static TextField textField;
	static Button send;
	static String toServer;
	static DataInputStream dataInputStream;
	static DataOutputStream dataOutputStream;
	 Socket socket;
	public RoomClient01(Socket socket) {
		// TODO Auto-generated constructor stub
		this.socket = socket;
	}
	/*
	 * 创建GUI面板
	 */
	public void createUI () throws IOException {
		Frame f = new Frame("客户端");
		textArea = new TextArea();
         textField = new TextField();
         send = new Button("send");
         send.addActionListener(this);
        Panel p = new Panel();
        p.setLayout(new BorderLayout());
        p.add(textField, "Center");
        p.add(send, "East");
        f.add(textArea, "Center");
        f.add(p, "South");
        f.addWindowListener(new WindowAdapter() {
            public void windowClosing(WindowEvent e) {
                System.exit(0);
            }
        });
        f.setSize(400, 400);
        f.setLocation(600, 0);
        f.setVisible(true);
        connect();
}
	/*
	 * 连接服务端并且不断从服务端读取数据
	 */
	
	public void connect() throws IOException {
		dataInputStream = new DataInputStream(socket.getInputStream());
		dataOutputStream = new DataOutputStream(socket.getOutputStream());
		while(true) {
			String string = dataInputStream.readUTF();
			textArea.append("服务>>"+string+"\n");
		}
	}
	/*
	 * 添加点击事件
	 */
	@Override
	public void actionPerformed(ActionEvent e) {
		Object source = e.getSource();
		if (source==send) {
			toServer=textField.getText();
			try {
				textArea.append("客户>>"+toServer+"\n");
				dataOutputStream.writeUTF(toServer);
				dataOutputStream.flush();
			} catch (IOException e1) {
				// TODO Auto-generated catch block
				e1.printStackTrace();
			}
		}
	}
	public static void main(String[] args) throws IOException {
		Socket socket = new Socket("localhost", 5551);
		RoomClient01 roomClient01 = new RoomClient01(socket);
		roomClient01.createUI();
	}

}

服务端

public class RoomServer01 implements ActionListener{
	 static  TextArea textArea;
	 static TextField textField;
	 static String fromclient;
	 static Button send;
	 static DataInputStream dataInputStream;
	 static DataOutputStream dataOutputStream;
	 ServerSocket serverSocket;
	 /*
	  * 创建GUI面板
	  */
	 	public void createUI () throws IOException {
			Frame f = new Frame("服务端");
			textArea = new TextArea();
	         textField = new TextField();
	         send = new Button("send");
	         send.addActionListener(this);
	        Panel p = new Panel();
	        p.setLayout(new BorderLayout());
	        p.add(textField, "Center");
	        p.add(send, "East");
	        f.add(textArea, "Center");
	        f.add(p, "South");
	        f.addWindowListener(new WindowAdapter() {
	            public void windowClosing(WindowEvent e) {
	                System.exit(0);
	            }
	        });
	        f.setSize(400, 400);
	        f.setLocation(600, 0);
	        f.setVisible(true);
	        connect();
	}
	 	public RoomServer01(ServerSocket serverSocket) {
			// TODO Auto-generated constructor stub
	 		this.serverSocket = serverSocket;
		}
	 	/*
	 	 *添加点击事件 
	 	 */
	@Override
	public void actionPerformed(ActionEvent e) {
		Object source = e.getSource();
		if (source==send) {
			String toclient = textField.getText();
			textArea.append("服务>>"+toclient);
					try {
						dataOutputStream.writeUTF(toclient);
						dataOutputStream.flush();
					} catch (IOException e1) {
						// TODO Auto-generated catch block
						e1.printStackTrace();
					}
		}
	}
	/*
	 * 连接客户端并且不断从客户端读取数据
	 */
	public  void connect() throws IOException{
		Socket socket = serverSocket.accept();
		dataInputStream = new DataInputStream(socket.getInputStream());
		dataOutputStream = new DataOutputStream(socket.getOutputStream());
		while(true) {
			String string = dataInputStream.readUTF();
			textArea.append("客户>>"+string+"\n");
		}
	}
	
	public static void main(String[] args) throws IOException {
		ServerSocket serverSocket = new ServerSocket(5551);
		RoomServer01 roomServer01 = new RoomServer01(serverSocket);
		roomServer01.createUI();
	}

}
Java SE原生实现的局域网多人聊天工具(含服务端与AWT客户端) 一套纯Java SE开发的局域网实时聊天解决方案,不依赖任何第三方库,由ChatServer服务端和ChatClient客户端组成。服务端基于Socket监听端口,支持多客户端并发接入,负责消息广播与在线状态管理;客户端使用AWT构建轻量图形界面,具备发送文字、实时接收群聊消息、独立收发线程等基础功能。所有源码均为标准.java文件,附带编译后的.class文件,结构清晰,开箱即用:先运行ChatServer启动服务,再启动多个ChatClient实例即可组成本地聊天室。适用于内网环境下的小范围协作、教学演 阅读详情

相关推荐

Ubuntu 24.04 极速部署 Dify:从零到一的保姆级实践

本文详细介绍了在Ubuntu 24.04系统上快速部署Dify的完整教程,从环境准备到部署验证,再到深度优化和安全加固,提供了一套保姆级的实践指南。通过使用Docker和Docker Compose,结合国内镜像源加速,帮助用户高效完成Dify的安装和配置,确保系统稳定运行。

weixin_42662293的博客 246

基于Java Socket通信实现聊天室功能

基于Java socket实现的聊天室,客户端之间可以相互显示发送的信息

m0_46043168的博客 4806

ARM架构UOS实战:从源码编译Qt 5.15.2到定制Qt Creator的全流程解析

本文详细解析了在ARM架构统信UOS系统上,从源码编译Qt 5.15.2到定制Qt Creator开发环境的完整流程。内容涵盖环境准备、依赖部署、源码配置、编译优化、错误处理及IDE集成,旨在帮助开发者在国产化平台上构建自主可控的高性能Qt开发环境,解决特定ARM平台的兼容性与性能优化问题。

mango的博客 411

JAVA中如何使用Socket 实现聊天功能?带具体代码说明

System.out.println("客户端" + socket.getInetAddress() + "发送的消息:" + message);服务器通过监听客户端socket的连接请求,接受客户端连接,然后通过客户端socket进行数据传输。System.out.println("客户端" + socket.getInetAddress() + "已连接");在JAVA中,使用Socket实现聊天功能需要涉及到TCP/IP协议、服务器socket和客户端socket的搭建、数据流传输等知识。

小马总的博客 4067

【S32K】S32K144入门笔记(4) Lin (Lin stack组件) 驱动超声波雷达实例

0. 引言 Lin这块是我一直没弄懂的部分。很多东西一知半解,当时感觉是硬凑了答案出来。 果然过标的时候出了问题,几个小伙伴帮忙一起刷夜也没搞定,好在标还是顺利过了,不然罪过大了。 之前做lin这块一直用的是linStack组件,这部分包含了协议栈部分,需要对lin的协议比较清楚和理解才好配置。 尤其是,图形界面配置完成后会生成一个ldf文件,这个文件很重要,所有的代码都是基于这个文件生成的,但是这个文件我确认没找到什么介绍资料,所以很多配置都是一点一点凑出来的,再实际验证的。 抓住这次写文档的机会,把当时

YoYo的桃子树 1万+

vscode+latex+bib文献管理

下载vscode 安装插件`` 在setting.json中配置 在.tex文件中编写论文内容,然后左侧TEX侧边栏中编译,如下图所示,中文用xelatex,英文用pdflatex;编译成功后,就可以查看pdf版本的论文了,我一般在浏览器显示。 涉及到文献编译:XXX.bib中存储文献管理内容;XXX.tex是文章内容,使用xelatex编译后会生成XXX.aux,ctrl+⋅ctrl+·ctrl+⋅打开命令行窗口,输入bibtex XXX(可以对aux文件进行编译,不需要加后缀),然后再xelatex.

小卜妞的博客 2548

Java实现Socket聊天室

讲述了网络编程的一些基本知识,两个案例了解如何通过Socket编程。 案例一实现了Socket的基本使用,案例二实现了一个通过Socket的聊天室

weixin_64340669的博客 2915

Figure 03人形机器人与Helix端到端控制系统:具身智能突破深度解析

2026年5月,Figure AI的Figure 03人形机器人在一场震撼业界的直播中完成了长达200小时的连续全自动作业,分拣近25万个包裹,零故障。这一里程碑式的成就标志着人形机器人正式从「实验室展示」迈入「规模化商用」阶段。本文深入剖析Figure 03的核心技术——Helix端到端神经网络控制系统,包括System 0/1/2三层架构、视觉运动策略、全身协同控制等关键技术,并提供完整的Python/Go代码示例,帮助开发者理解具身智能的核心原理与实现路径。关键词。

shao.bing的专栏 998

基于java的简易socket聊天程序

基于java的socket聊天程序

武玄天宗的专栏 3344

LVGL移植教程(正点原子)

学习正点原子LVGL移植教程,根据视频教程写的博客

papalila的博客 945

【从零开始学习SLAM】官方tf教程小海龟跟随程序

ros tf 进行坐标系之间转换的运算和发布

小秋 AI SLAM 入门实战教程 2034

JAVA SOCKET实现一对一TCP聊天

记录socket讯通

qq_29054771的博客 438

ROS2 Nav2 - 模型预测路径积分控制器(MPPI)

这是一个预测控制器(局部轨迹规划器),用于实现模型预测路径积分(MPPI)算法,以跟踪具有自适应避障功能的路径。它包含基于插件的 critic 函数,可影响算法的行为。它由 Aleksei Budyakov 创建,由 Steve Macenski 为 Nav2 进行改编和开发。该插件实现了 nav2_core::Controller(控制器)接口,可在整个导航堆栈中作为控制器服务器的动作服务器(controller_server)中的局部轨迹规划器使用。据测定,该控制器可在中等英特尔处理器(第四代 i5)上

机器人控制与仿真应用 3914

java Socket实现简单在线聊天(一)

最近的项目有一个在线网页交流的需求,由于很久以前做过的demo已经忘记的差不多了,因此便重新学习一下。 我计划的大致实现步骤分这样几大步: 1、使用awt组件和socket实现简单的单客户端向服务端持续发送消息; 2、结合线程,实现多客户端连接服务端发送消息; 3、实现服务端转发客户端消息至所有客户端,同时在客户端显示; 4、把awt组件生成的窗口界面改成前端jsp或者html展

程序员涂小哥的技术博客 1万+

SAP B1中文培訓教材_SDK

公司内部培训资料,对开发工具 ,DIAPI, UIAPI,Add-ON有详细解说

复分析 阿尔福斯(Ahlfors) 第三版答案 英文

答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案

Java 通过 Socket 实现小票打印

描述 最近在研究Java连接打印的方法,无脑百度了一番,发现有很多都是这样的模式。 根据java.awt中提供的一些打印的API,要实现打印,首先要获得打印对象,然后继承Printable实现接口方法print,以便打印机进行打印,最后用用Graphics2D直接输出直接输出。 — 优快云 @戴新美   对于这样的方式,不是太懂,有的代码运行起来,会弹出一个面板选择任务,着实不便。但是无

lmx 5080

ET2012新版免狗免安装绿色软件

ET2012新版免狗免安祖昂绿色软件。,新界面,新视觉,

简单java socket_基于Java Socket实现一个简易在线聊天功能(一)

最近做了一个项目,其中有一个在线网页交流的需求,好久没写代码了,手都生疏了,于是先写demo练练手,分享到脚本之家平台,以此做个记录,方便自己和大家使用。先给大家说下实现步骤分这样几大步:1、使用awt组件和socket实现简单的单客户端向服务端持续发送消息;2、结合线程,实现多客户端连接服务端发送消息;3、实现服务端转发客户端消息至所有客户端,同时在客户端显示;4、把awt组件生成的窗口界面改成...

weixin_31452537的博客 523

Java 实现Socket双向通信 并实现可视化

总览 Java初学者,老师要求基于GUI来实现网络通信程序。这个题目分为两大部分,具体来讲,一是实现可视化,二是实现Socket(双向)通信。 可视化方面,我们采用AWT与Swing来进行用户界面组件的设计与组装,较为方便。Socket通信方面,主要就是构建服务器,服务器连接,以及输入输出流的操作。 服务端 客户端 代码 服务端代码 客户端代码 ...

qq_52477875的博客 2239

java awt聊天室_Java AWT实现的简单的多人在线聊天室

客户端:package Client;import java.awt.*;import java.awt.event.*;import java.io.*;import java.net.*;public class ChatClient {public static void main(String[] args) {new Myframe();}}class Myframe extends F...

weixin_36180611的博客 187

JAVA网络编程Socket实现信息传输

实现功能:【发送】、【清屏】、【记录】、【震动】 效果: 源码如下,拿去直接可用: package com.wrb; import java.awt.BorderLayout; import java.awt.Button; import java.awt.Color; import java.awt.Font; import java.awt.Frame; import java.a...

任玥的博客 444

java基于socket tcp的简单聊天室

--记录生活点点滴滴-- 这段时间一直在写socket通信、特意简单的将socket部分整理出来 import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.io.PrintWriter; import java.io.Reader; im

w464693894w的专栏 880

java毕业设计——基于java+Socket+sqlserver的远程监控系统软件设计与实现(毕业论文+程序源码)——远程监控系统

近年来,网络技术的不断发展,为远程监控技术的发展创造了条件。远程监控系统软件越来越受到人们的重视,其实用性也毋庸质疑。基于JAVA C/S远程监控系统软件突破了空间的限制,使用者不用亲临,在自己的电脑面前就能轻松的实现对被监控端机器的监控。本系统采用Java网络编程和Java图形编程实现。笔者在开发过程中将网络技术与远程监控理论基础相结合,实现了以下功能:能连续获得被监控端机器屏幕变化;实现被监控端硬盘文件的上传、下载;实现对鼠标、键盘的模拟;实现在远程机器上执行任意DOS命令;

m0_66238867的博客 2365

java聊天室持续监听_基于Java Socket实现一个简易在线聊天功能(一)

最近做了一个项目,其中有一个在线网页交流的需求,好久没写代码了,手都生疏了,于是先写demo练练手,分享到聚米学院平台,以此做个记录,方便自己和大家使用。先给大家说下实现步骤分这样几大步:1、使用awt组件和socket实现简单的单客户端向服务端持续发送消息;2、结合线程,实现多客户端连接服务端发送消息;3、实现服务端转发客户端消息至所有客户端,同时在客户端显示;4、把awt组件生成的窗口界面改成...

weixin_39787792的博客 629
上一篇: Java之Socket
下一篇: Java类加载机制
Coder_py
博客等级 码龄10年 106粉丝 258原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值