java编写一个java简单聊天室程序的聊天程序

一个最简单的聊天程序下载_Java小程序源码_JAVA
当前位置 &
一个最简单的聊天程序
运行环境:Windows/Linux
软件大小:53KB
发布日期:.26294
人气浏览:54484
适合初学者
先运行服务器端再运行客户端
上海网通FTP下载
上海电信HTTP下载
下载此源码的会员还关注过:
电子白板代码(java)..一款用于制作菜单的java小程序,可以对制作出迷人的高亮效果菜单;支持子菜单和复合框架结构;制作的菜单小巧、协调等..paintchat,日本的java画图聊天程序,边画图边聊天。..这是个类似华容道的拼图游戏,目的是把大的方块移动到窗口的下方。 ..一款用于制作banner的java小程序,可以制作淡出效果的文字banner;支持链接;支持框架目标等..
站长工具:
实用工具:
Copyright &
all rights reserved用java写一个很简单的聊天程序,应学习那些知识?_百度知道
用java写一个很简单的聊天程序,应学习那些知识?
我有更好的答案
不用到数据库应该是比较简单的用全局变量application应该就可以了。还有一个相关的html标签比如定时刷新,其次要用到session用来存储关键变量名。
采纳率:55%
来自团队:
为您推荐:
其他类似问题
换一换
回答问题,赢新手礼包
个人、企业类
违法有害信息,请在下方选择后提交
色情、暴力
我们会通过消息、邮箱等方式尽快将举报结果通知您。基于Java Socket实现一个简易在线聊天功能(一)
转载 & & 作者:Past_Future
这篇文章主要给大家介绍基于Java Socket实现一个简易在线聊天功能(一),分为客户端和服务端两段代码,非常具有参考价值,感兴趣的朋友一起学习吧
最近做了一个项目,其中有一个在线网页交流的需求,好久没写代码了,手都生疏了,于是先写demo练练手,分享到脚本之家平台,以此做个记录,方便自己和大家使用。
先给大家说下实现步骤分这样几大步:
1、使用awt组件和socket实现简单的单客户端向服务端持续发送消息;
2、结合线程,实现多客户端连接服务端发送消息;
3、实现服务端转发客户端消息至所有客户端,同时在客户端显示;
4、把awt组件生成的窗口界面改成前端jsp或者html展示的界面,java socket实现的客户端改为前端技术实现。
这里首先实现第一步的简单功能,难点在于:
1、没有用过awt组件,没有用过java相关的监听事件;
2、长时间没有使用socket进行客户端和服务端的交互,并且没有真正进行过cs结构的开发。
实现功能的代码如下:
package chat.
import java.awt.BorderL
import java.awt.F
import java.awt.TextA
import java.awt.TextF
import java.awt.event.ActionE
import java.awt.event.ActionL
import java.awt.event.WindowA
import java.awt.event.WindowE
import java.io.DataOutputS
import java.io.IOE
import java.net.S
import java.net.UnknownHostE
* 在线聊天客户端 1、生成图形窗口界面轮廓 2、为轮廓添加关闭事件 3、在轮廓中加入输入区域和内容展示区域 4、为输入区域添加回车事件
* 5、建立服务端连接并发送数据
* @author tuzongxun123
public class ChatClient extends Frame {
// 用户输入区域
private TextField tfTxt = new TextField();
// 内容展示区域
private TextArea tarea = new TextArea();
private Socket socket =
// 数据输出流
private DataOutputStream dataOutputStream =
public static void main(String[] args) {
new ChatClient().launcFrame();
* 建立一个简单的图形化窗口
* @author:tuzongxun
* @Title: launcFrame
* @return void
* @date May 18, :00 AM
public void launcFrame() {
setLocation(300, 200);
this.setSize(200, 400);
add(tfTxt, BorderLayout.SOUTH);
add(tarea, BorderLayout.NORTH);
// 监听图形界面窗口的关闭事件
this.addWindowListener(new WindowAdapter() {
public void windowClosing(WindowEvent e) {
System.exit(0);
disConnect();
tfTxt.addActionListener(new TFLister());
setVisible(true);
connect();
* 连接服务器
* @author:tuzongxun
* @Title: connect
* @return void
* @date May 18, :49 AM
public void connect() {
// 新建服务端连接
socket = new Socket("127.0.0.1", 8888);
// 获取客户端输出流
dataOutputStream = new DataOutputStream(socket.getOutputStream());
System.out.println("连上服务端");
} catch (UnknownHostException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
* 关闭客户端资源
* @author:tuzongxun
* @Title: disConnect
* @return void
* @date May 18, :46 AM
public void disConnect() {
dataOutputStream.close();
socket.close();
} catch (IOException e) {
e.printStackTrace();
* 向服务端发送消息
* @author:tuzongxun
* @Title: sendMessage
* @param @param text
* @return void
* @date May 18, :56 AM
private void sendMessage(String text) {
dataOutputStream.writeUTF(text);
dataOutputStream.flush();
} catch (IOException e1) {
e1.printStackTrace();
* 图形窗口输入区域监听回车事件
* @author tuzongxun123
private class TFLister implements ActionListener {
public void actionPerformed(ActionEvent e) {
String text = tfTxt.getText().trim();
tarea.setText(text);
tfTxt.setText("");
// 回车后发送数据到服务器
sendMessage(text);
package chat.
import java.io.DataInputS
import java.io.EOFE
import java.io.IOE
import java.net.BindE
import java.net.ServerS
import java.net.S
* java使用socket和awt组件简单实现在线聊天功能服务端 可以实现一个客户端连接后不断向服务端发送消息
* 但不支持多个客户端同时连接,原因在于代码中获得客户端连接后会一直循环监听客户端输入,造成阻塞
* 以至于服务端无法二次监听另外的客户端,如要实现,需要使用异步或者多线程
* @author tuzongxun123
public class ChatServer {
public static void main(String[] args) {
// 是否成功启动服务端
boolean isStart =
// 服务端socket
ServerSocket ss =
// 客户端socket
Socket socket =
// 服务端读取客户端数据输入流
DataInputStream dataInputStream =
// 启动服务器
ss = new ServerSocket(8888);
} catch (BindException e) {
System.out.println("端口已在使用中");
// 关闭程序
System.exit(0);
} catch (Exception e) {
e.printStackTrace();
while (isStart) {
boolean isConnect =
// 启动监听
socket = ss.accept();
System.out.println("one client connect");
isConnect =
while (isConnect) {
// 获取客户端输入流
dataInputStream = new DataInputStream(
socket.getInputStream());
// 读取客户端传递的数据
String message = dataInputStream.readUTF();
System.out.println("客户端说:" + message);
} catch (EOFException e) {
System.out.println("client closed!");
} catch (Exception e) {
e.printStackTrace();
} finally {
// 关闭相关资源
dataInputStream.close();
socket.close();
} catch (IOException e) {
e.printStackTrace();
以上所述是小编给大家介绍的Java Socket实现一个简易在线聊天功能(一)的相关知识,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对脚本之家网站的支持!
您可能感兴趣的文章:
大家感兴趣的内容
12345678910
最近更新的内容
常用在线小工具博客分类:
//使用socket编写一个服务器端程序,服务器端程序在端口8888监听,如果它接到客户端发来的"hello"请求时会回应一个"hello",对客户端的其他请求不响应。
import java.net.*;import java.io.*;public class Server {private ServerSprivate Sprivate BufferedRprivate PrintWpublic Server() {
ss = new ServerSocket(8888);
while (true) {
socket = ss.accept();
in = new BufferedReader(new InputStreamReader(socket .getInputStream()));
out = new PrintWriter(socket.getOutputStream(), true);
String line = in.readLine();
if("hello".equals(line)){
out.println("hello");
out.close();
in.close();
socket.close();
ss.close();
} catch (IOException e) {
}}public static void main(String[] args) {
new Server();}}
浏览: 90357 次
来自: 北京
NetConnection.Connect.Rejected拒 ...
(window.slotbydup=window.slotbydup || []).push({
id: '4773203',
container: s,
size: '200,200',
display: 'inlay-fix'19:34 提问
Java的网络编程(聊天小程序)
放上源程序代码
import java.io.*;
import java.net.*;
import java.util.ArrayL
public class TalkServer {
public static ArrayList&Client& allClient = new ArrayList&Client&();
public static int clientNum = 0;
* @param args
public static void main(String[] args) {
ServerSocket serverSocket = new ServerSocket(5432);
while (true) {
Socket socket = serverSocket.accept();
DataOutputStream dataOutputStream = new DataOutputStream(
socket.getOutputStream());
DataInputStream dataInputStream = new DataInputStream(
socket.getInputStream());
Client client = new Client(clientNum, dataOutputStream,
dataInputStream);
allClient.add(client);
client.start();
clientNum++;
} catch (IOException e) {
e.printStackTrace();
class Client extends Thread {
DataOutputStream dataOutputS
DataInputStream dataInputS
public Client(int id, DataOutputStream dataOutputStream,
DataInputStream dataInputStream) {
this.dataOutputStream = dataOutputS
this.dataInputStream = dataInputS
public void run() {
while (true) {
String message = dataInputStream.readUTF();
int m = TalkServer.clientN
for (int i = 0; i & i++) {
TalkServer.allClient.get(i).dataOutputStream
.writeUTF(message);
} catch (IOException e) {
e.printStackTrace();
import java.awt.*;
import java.awt.event.*;
import java.io.*;
import java.net.*;
import javax.swing.JOptionP
public class TalkClient {
* @param args
* @throws IOException
* @throws UnknownHostException
public static void main(String[] args) throws UnknownHostException,
IOException {
Socket socket = new Socket("localhost", 5432);
DataInputStream dataInputStream = new DataInputStream(
socket.getInputStream());
final DataOutputStream dataOutputStream = new DataOutputStream(
socket.getOutputStream());
Frame frame = new Frame("client");
Panel panel = new Panel();
final TextField input = new TextField(20);
TextArea displayArea = new TextArea(5, 20);
displayArea.setEditable(false);
panel.add(input);
panel.add(displayArea);
frame.add(panel);
final String name = JOptionPane.showInputDialog("输入您的昵称:");
new receiveThread(dataInputStream, displayArea);
input.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
dataOutputStream.writeUTF(name + ":"
+ input.getText());
} catch (IOException exception) {
exception.printStackTrace();
frame.setSize(300, 300);
frame.setVisible(true);
class receiveThread extends Thread {
DataInputStream dataInputS
TextArea displayA
public receiveThread(DataInputStream dataInputStream, TextArea displayArea) {
this.dataInputStream = dataInputS
this.displayArea = displayA
this.start();
public void run() {
for (;;) {
String str = new String(dataInputStream.readUTF());
displayArea.append(str + "\n");
} catch (IOException e) {
e.printStackTrace();
TalkServer是服务器代码
TalkClinet是客户端代码
这是一个简易的聊天程序。
(1)如何修改服务方,使用户自己发送的消息不显示在自己的文本域中。
(2)在客户方显示用户列表,可以选择将信息发送给哪些用户。
(3)如何在服务方对退出的用户进行处理,保证聊天发送的消息只发给在场的用户。
按赞数排序
----------------------同志你好,我是CSDN问答机器人小N,奉组织之命为你提供参考答案,编程尚未成功,同志仍需努力!
你试试环信吧,百度imgeek即可
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!
其他相关推荐

我要回帖

更多关于 java编写简单聊天程序 的文章

 

随机推荐