服务器端 :
import java.io.DataInputStream;
import java.io.IOException;
import java.net.BindException;
import java.net.ServerSocket;
import java.net.Socket;
public class ChatServer {
public static void main(String[] args) {
boolean started = false;
Socket socket = null;
ServerSocket serverSocket = null;
DataInputStream dis = null;
try {
serverSocket = new ServerSocket(7777);
}
catch(BindException e2) {
System.out.println("端口使用中 ... ...");
System.out.println("请关闭双关程序!");
System.exit(0);
}
catch(Exception e) {
e.printStackTrace();
}
try{
started = true;
while(started) {
boolean bConnected = false;
socket = serverSocket.accept();
System.out.println("连接上了... ...");
bConnected = true;
dis = new DataInputStream(socket.getInputStream());
while(bConnected){
String str = dis.readUTF();
System.out.println(str);
}
}
} catch (IOException e) {
System.out.println("Server 关闭");
}finally {
try {
if(dis != null)dis.close();
if(socket != null)socket.close();
} catch (IOException e1) {
e1.printStackTrace();
}
}
}
}
客户端 :
import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;
import java.io.DataOutputStream;
import java.io.IOException;
import java.net.Socket;
import java.net.UnknownHostException;
public class ChatClient extends Frame {
Socket socket = null;
TextField textField = new TextField();
TextArea textArea = new TextArea();
DataOutputStream dos = null;
public void MainFrame() {
setLocation(200, 200);
setSize(400, 300);
add(textArea,BorderLayout.NORTH);
add(textField,BorderLayout.SOUTH);
textField.addActionListener(new TextFieldListener());
pack();
addWindowListener(new WindowAdapter() {
public void windowClosing(WindowEvent e) {
disConnect();
System.exit(0);
}
});
setVisible(true);
connect();
}
private class TextFieldListener implements ActionListener{
public void actionPerformed(ActionEvent e) {
String str = textField.getText();
textArea.setText(str);
textField.setText("");
try {
dos.writeUTF(str);
dos.flush();
} catch (IOException e1) {
e1.printStackTrace();
}
}
}
public void disConnect() {
try {
dos.close();
socket.close();
} catch (IOException e) {
e.printStackTrace();
}
}
public void connect() {
try {
socket = new Socket("127.0.0.1",7777);
dos = new DataOutputStream(socket.getOutputStream());
} catch (UnknownHostException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}
public static void main(String[] args) {
new ChatClient().MainFrame();
}
}
分享到:
相关推荐
Java聊天室是一个基于Java编程语言实现的实时通讯应用,它包含客户端和服务器两部分,具有图形用户界面(GUI)。这个项目对于初学者来说是理想的,因为它提供了清晰的代码结构和简洁的实现,有助于理解网络编程和GUI...
Java聊天系统客户端是一款基于Java编程语言开发的交互式通信软件,允许用户通过网络与其他用户进行实时文本、语音或视频聊天。这款客户端程序是完整的,具备运行所需的全部功能,包括用户注册、登录、发送和接收消息...
Java版飞信客户端源码分析 飞信是中国移动推出的一款即时通讯软件,它允许用户通过互联网或移动网络进行免费的短信、语音通话等通信服务。本文将深入探讨Java版飞信客户端的源码,帮助开发者了解其内部工作原理,...
Java基于TCP/IP的聊天室是一种实现用户间实时通信的应用程序,它依赖于网络协议TCP/IP进行数据传输。在这个系统中,通常包含两个主要组件:服务器端和客户端。 **TCP/IP协议**是Transmission Control Protocol/...
1. 客户端:Java聊天系统的客户端是用户直接操作的部分,负责用户界面展示、用户输入接收和发送消息。通常使用Java Swing或JavaFX库来构建图形用户界面(GUI)。 2. 服务器:服务器端处理客户端的连接请求,转发消息...
在传统的单连接模型中,服务器每次只能处理一个客户端,但在多客户端连接的场景下,我们需要循环或者异步地处理`accept()`,以接受更多的连接。 在Java中实现多客户端连接通常有两种策略: 1. **线程池**:每当有...
【标题】"java写的简易QQ聊天"所涉及的知识点主要集中在Java编程语言和网络通信上,我们可以从以下几个方面来详细解读: 1. **Java编程语言基础**:Java是一种跨平台的面向对象的编程语言,其核心特性包括封装、...
- JSF是一种MVC(模型-视图-控制器)框架,提供了一套组件库和生命周期管理,用于构建Java Web应用的用户界面。 7. AJAX(异步JavaScript和XML) - AJAX允许局部更新网页,无需刷新整个页面,提高了用户体验。 -...
【Java聊天系统源码解析】 本Java聊天系统源码是一个基于MVC(Model-View-Controller)架构设计的项目,其目标是实现一个类似于QQ的即时通讯应用。这个系统包括客户端和服务器端两大部分,支持用户进行单人聊天以及...
综上所述,这个"JAVA聊天器"项目涵盖了多个重要的IT知识点,包括Java语言的基础、网络编程、多线程、IO流、数据序列化、GUI设计以及事件处理等,对于学习和提升Java开发技能有着很好的实践价值。
9. **Event Handling**:Swing使用事件监听器模型来处理用户交互。例如,添加一个ActionListener到"发送"按钮,当按钮被点击时触发相应的行为。 10. **Serialization**:如果消息需要序列化以便在网络上传输,Java...
【JAVA聊天室 源码】是一个初学者在掌握J2SE基础后,尝试实现的交互式应用程序。这个项目展示了如何运用Java的核心概念和技术来创建一个实时通信平台。以下是这个项目涉及的关键知识点: 1. **Java基础知识**:首先...
Java聊天室是一个典型的网络编程项目,它涉及到许多关键的Java技术,特别适合初学者学习和实践。在这个项目中,我们将探讨以下知识点: 1. **Java网络编程基础**:Java提供了丰富的API来支持网络编程,包括Socket和...
5. **事件驱动编程**:在图形用户界面(GUI)部分,Java聊天程序可能使用事件驱动编程模型。Java Swing 或 JavaFX 提供了丰富的组件库来创建用户界面,并通过事件监听器处理用户的交互事件,如点击按钮发送消息。 6...
Java聊天小程序是一款基于Java语言开发的简单通讯应用,它利用了Java Socket编程技术来实现客户端与服务器端的实时通信。Socket在计算机网络中扮演着重要角色,它是TCP/IP协议族的一部分,提供了进程间的网络通信...
【JAVA聊天软件】是一款基于Java技术开发的网络通信应用,主要使用了Socket编程来实现客户端与服务器端的实时通讯功能。Socket是TCP/IP协议的一部分,它允许两台计算机通过网络进行双向通信。在这个项目中,我们看到...
Java聊天程序源代码是Java编程领域中的一个基础实践项目,主要展示了如何利用Java技术实现一个简单的聊天应用程序。这个程序对于初学者和中级开发者来说是一个很好的学习资源,可以帮助他们加深对网络编程、多线程和...
### Java聊天室系统知识点 #### 一、绪论 ##### 1.1 关于Java聊天室概述 **选题的依据及课题的意义** 随着互联网技术的快速发展,人们越来越依赖网络进行沟通与交流。聊天室作为一种早期的在线社交平台,不仅为...
Java Swing组件写的游戏客户端 Java Swing是Java标准库中的一个图形用户界面(GUI)工具包,用于构建桌面应用程序。在这个特定的项目中,"Java Swing组件写的游戏客户端" 暗示了一个基于Java Swing开发的游戏客户端...
总的来说,创建一个Java聊天室项目不仅可以巩固和应用网络编程、多线程、GUI设计等基础技能,还能深入理解客户端-服务器交互的复杂性,以及如何构建安全、高效的网络应用。这个期末作业对于学习者来说是一次宝贵的...