由于这几天挺忙的,以前写的小东西也没有时间去改了,呵呵~
这个是利用java.net包下的ServerSocket和Socket写的,先分别在服务器端和客户端建立两个流,利用了Socket类下的getOutputStream和getOutputStream两个方法,其他的和对流的操作是一样的。
由于代码写的比较多的,都写上来,恐怕看起来会很乱很费事。这里只列举一部分,一个框架思路。写的比较匆忙,注释懒的写了,呵呵~
逻辑层只列举一个Server端,Client端和Server端是一样的,只是在实例化一个Socket对象的时候二者有一点不一样。实现层也只列举一个Server端,二者也是大同小异,稍做改动就成。
//TestSocket.java(逻辑层)
package logic;
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.OutputStream;
import java.io.OutputStreamWriter;
import java.io.Reader;
import java.io.Writer;
import java.net.ServerSocket;
import java.net.Socket;
public class TestSocket {
ServerSocket serverSocket = null;
Socket socket = null;
InputStream inputStream = null;
Reader reader = null;
BufferedReader bufferedReader = null;
OutputStream outputStream = null;
Writer writer = null;
BufferedWriter bufferedWriter = null;
public TestSocket() throws IOException{
serverSocket = new ServerSocket(端口号);
socket = serverSocket.accept();
inputStream = socket.getInputStream();
reader = new InputStreamReader(inputStream);
bufferedReader = new BufferedReader(reader);
outputStream = socket.getOutputStream();
writer = new OutputStreamWriter(outputStream);
bufferedWriter = new BufferedWriter(writer);
}
public void SendToClient(String message) throws IOException{
bufferedWriter.write(message);
bufferedWriter.newLine();
bufferedWriter.flush();
}
public String GetFromClient() throws IOException{
return bufferedReader.readLine();
}
}
// ServerFrame.java(实现层)
package frame;
import java.awt.FlowLayout;
import java.awt.Panel;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.io.IOException;
import java.util.Date;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JTextArea;
import javax.swing.JTextField;
import logic.TestSocket;
public class ServerFrame extends JFrame{
private JTextArea textArea = new JTextArea(11,25);
private JTextField textField = new JTextField(19);
private JButton button = new JButton("发送");
private Panel panel = new Panel();
private TestSocket socket = null;
public ServerFrame(){
super("聊天系统(Server)");
this.setSize(300, 300);
this.setLocation(150, 150);
this.setLayout(new FlowLayout());
this.add(textArea);
panel.add(textField);
panel.add(button);
this.add(panel);
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
button.addActionListener(new MyListener());
this.setVisible(true);
try {
socket = new TestSocket();
} catch (IOException e1) {
textArea.append("对不起,该端口正被使用");
}
while (true) {
try {
String s = socket.GetFromClient();
textArea.append(s + "\n");
} catch (IOException e) {
//textArea.append("数据接收错误");
return;
}
}
}
class MyListener implements ActionListener {
public void actionPerformed(ActionEvent e) {
try {
String s = textField.getText();
if (s.length() > 0) {
socket.SendToClient(new Date().toLocaleString() + " Server Send: \n" + s);
}
textArea.append(new Date().toLocaleString() + " Server Send: \n" + s + "\n");
}
catch (IOException e1) {
textArea.append("发送失败");
}
finally{
textField.setText("");
}
}
}
public static void main(String[] args) {
JFrame serverFrame = new ServerFrame();
}
}
分享到:
相关推荐
【Java实现的类似QQ聊天系统】是一个基于Java技术构建的在线聊天平台,它模拟了QQ的基本功能,如用户注册、登录、发送和接收消息。这个系统不仅涉及到Java编程语言的基础应用,还涵盖了网络安全领域的相关知识,特别...
在Java编程领域,实现一个多人聊天系统,类似于QQ聊天,主要涉及到网络编程和并发处理的知识。这个项目通常会使用Socket编程来建立客户端与服务器端的通信,并通过多线程技术来处理多个客户端的并发连接。下面我们将...
【标题】:“类似于qq聊天器的java程序” 这个标题揭示了一个项目,它的目的是创建一个Java编程语言实现的聊天应用程序,其功能和外观可能与我们熟知的QQ即时通讯软件相类似。在IT领域,这样的项目通常涉及到网络...
在Java编程语言中实现类似QQ聊天功能是一项挑战性的任务,涉及到网络通信、多线程、图形用户界面(GUI)设计等多个关键知识点。本项目显然旨在教授开发者如何利用Java技术构建一个基本的即时通讯应用。以下是关于这...
在本项目中,我们主要探讨如何使用Java编程语言模拟实现一个基本的QQ聊天功能。这个模拟聊天系统旨在提供类似于真实QQ应用的体验,包括用户登录、两人之间的私聊以及下线检测等核心功能。让我们逐步解析这个项目的...
【Java实现的类似QQ聊天软件】是一个基于网络通信技术的即时通讯应用,它允许用户进行实时的文字、语音甚至视频交流。在本项目中,我们主要关注的是如何利用Java编程语言来构建这样一个系统,以及实现登录服务器和...
【标题】"简单的QQ聊天软件 用JAVA实现"揭示了一个基于JAVA编程语言开发的简易聊天应用程序,它旨在提供类似于QQ的通信体验。QQ是中国最受欢迎的即时通讯软件之一,具有多种功能,包括文字聊天、文件传输等。这个...
《基于Java实现的类似QQ聊天软件深度解析》 在信息技术高速发展的今天,各种通信软件层出不穷,其中QQ作为一款广受欢迎的即时通讯工具,其功能强大、用户体验优秀。然而,对于IT爱好者和开发者来说,理解并实现类似...
Java版QQ聊天室是一款基于Java编程语言实现的即时通讯应用,它模仿了QQ群的功能,让用户可以在一个虚拟的聊天环境中进行实时交流。这个项目利用了Java的多线程技术,确保了在高并发情况下的稳定性和性能。接下来,...
类似于QQ的聊天系统 界面漂亮 有语音提示 内嵌浏览器
【Java实现的仿QQ聊天项目】是一个学习与实践的项目,旨在帮助开发者了解如何使用Java技术栈构建一个类似于QQ的即时通讯应用。这个项目不仅涵盖了基础的编程概念,还涉及到了网络通信、多线程、数据序列化等多个高级...
本篇文章将深入探讨一个完全使用Java语言编写的聊天室系统,该系统的设计与实现充分利用了Java的核心特性,如抽象、继承、多态和封装,同时集成了集合和映射关系的高效运用。通过这个项目,我们可以直观地理解Java的...
本项目"QQ_java"旨在提供一个类似于QQ的聊天系统的Java实现,帮助开发者理解即时通信系统的设计与开发。 首先,即时通信系统的核心功能包括用户注册、登录、消息发送、接收以及存储。在Java中,这些功能可以通过...
在本项目中,我们探讨的是如何使用Java编程语言设计一个类似于QQ的聊天应用程序。这个程序设计涵盖了多个关键的IT知识点,对于那些希望深入理解Java应用开发,尤其是即时通讯(IM)系统开发的学习者来说,这是一个...
Java仿QQ功能实现是一个项目,旨在使用Java编程语言来创建一个类似于腾讯QQ的应用程序,它包含聊天、添加好友和用户注册等核心功能。这个项目主要关注于后端逻辑的实现,以及可能涉及到的数据库交互。以下是一些关键...
【QQ聊天系统】是基于Java技术开发的一款即时通讯软件,其核心目标是提供类似QQ的聊天体验,包括文字聊天、图片传输、截屏分享、字体选择、表情输入以及用户之间的抖动互动等多元化功能。在Java编程环境中,实现这样...
【JAVA做的仿QQ聊天】项目是一个使用Java编程语言实现的即时通讯软件,旨在模拟QQ的聊天功能,为用户提供一个类似QQ的在线交流平台。这个项目不仅涵盖了基础的文本聊天,可能还包括了表情发送、文件传输、群聊等功能...
QQ聊天软件原代码基于Java语言实现,这是一项深入学习Java编程和网络通信技术的重要资源。Java作为一种跨平台的编程语言,以其面向对象的特性、健壮性和安全性在开发领域广泛应用,尤其是在开发桌面应用和分布式系统...
【标题】"类似QQ的Java写的聊天室"是一款基于Java编程语言实现的即时通讯软件,其设计理念和功能特性与我们熟知的QQ相似。这个项目旨在为开发者提供一个学习和实践的平台,通过此项目,我们可以深入理解Java GUI...