网站首页 > 文章中心 > 其它

java网络聊天室源代码_简易聊天室网页源代码

作者:小编 更新时间:2023-08-21 07:52:29 浏览量:458人看过

java 聊天室代码?

前天帮人解决过,代码如下:public class iChat extends JFrame {

private JPanel jContentPane;

private JButton jButton1;

private JScrollPane jScrollPane1;

super();

initialize();

java网络聊天室源代码_简易聊天室网页源代码-图1

} private void initialize() {

jTextArea1 = getJTextArea1();

this.setContentPane(getJContentPane());

this.setTitle("聊天室");

setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); } private JPanel getJContentPane() {

if (jContentPane == null) {

jContentPane = new JPanel();

java网络聊天室源代码_简易聊天室网页源代码-图2

jContentPane.setBackground(Color.BLUE);//蓝色为JPanel .

jContentPane.setLayout(null);

jContentPane.add(getJButton1(), null);

jContentPane.add(getJScrollPane1(), null);

}

return jContentPane;

public void keyTyped(java.awt.event.KeyEvent e) {

if (e.getKeyChar() == KeyEvent.VK_ENTER) {

String date = new SimpleDateFormat(

"yyyy-MM-dd HH:mm:ss").format(Calendar

.getInstance().getTime());

jTextArea1.append(date + "\n");

jTextArea1.append(s);

});

} private JButton getJButton1() {

if (jButton1 == null) {

jButton1 = new JButton();

jButton1.setText("发送");

jButton1.addActionListener(new java.awt.event.ActionListener() {

public void actionPerformed(java.awt.event.ActionEvent e) {

String date = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss")

.format(Calendar.getInstance().getTime());

jTextArea1.append(s + "\n");

return jButton1;

private JScrollPane getJScrollPane1() {

if (jScrollPane1 == null) {

jScrollPane1 = new JScrollPane();

jScrollPane1.setViewportView(getJTextArea1());

return jScrollPane1;

} private JTextArea getJTextArea1() {

if (jTextArea1 == null) {

jTextArea1 = new JTextArea();

jTextArea1.setEditable(false);

jTextArea1.setLineWrap(true);

return jTextArea1;

} public static void main(String[] args) {

SwingUtilities.invokeLater(new Runnable() {

public void run() {

iChat thisClass = new iChat();

thisClass.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

thisClass.setVisible(true);

}}

java简易聊天室

你要的就是点对点通信,见以下例子:

①简单服务器端

/*

import java.net.*;

import java.io.*;

*/

ServerSocket server=null;

try {

server=new ServerSocket(%%1);

}catch(Exception e){

System.out.println("不能监听:"+e.toString());

Socket socket=null;

socket=server.accept();

catch(IOException e){

System.out.println("出错:"+e.toString());

}finally{

if(socket!=null){

socket.close();

server.close();

e.printStackTrace();

finally{

//import java.net.*;

String strIP = null;

try

{

strIP =InetAddress.getLocalHost().getHostAddress().toString();

catch(UnknownHostException e)

%%1=InetAddress.getLocalHost().getHostAddress();

EnumerationNetworkInterface netInterfaces = null;

netInterfaces = NetworkInterface.getNetworkInterfaces();

while (netInterfaces.hasMoreElements()) {

NetworkInterface ni = netInterfaces.nextElement();

System.out.println("DisplayName:" + ni.getDisplayName());

System.out.println("Name:" + ni.getName());

EnumerationInetAddress ips = ni.getInetAddresses();

while (ips.hasMoreElements()) {

System.out.println("IP:"

+ ips.nextElement().getHostAddress());

} catch (Exception e) {

@Override

ServerSocket server = null;

System.out.println("不能监听:" + e.toString());

Socket socket = null;

socket = server.accept();

BufferedReader req = new BufferedReader(new InputStreamReader(

socket.getInputStream()));

PrintWriter os = new PrintWriter(socket.getOutputStream());

Debug.p(req.readLine());

os.println("Server");

os.flush();

os.close();

req.close();

} catch (IOException e) {

System.out.println("出错:" + e.toString());

} finally {

if (socket != null) {

t.start();

strIP = InetAddress.getLocalHost().getHostAddress().toString();

} catch (UnknownHostException e) {

PrintWriter pw = new PrintWriter(socket.getOutputStream());

BufferedReader br = new BufferedReader(new InputStreamReader(socket

.getInputStream()));

pw.println("Client");

pw.flush();

Debug.p(br.readLine());

pw.close();

br.close();

求java网络聊天室(B/S模式)程序代码

共四个java文件,源代码如下:

import java.awt.*;

import java.awt.event.*;

import java.util.Hashtable;

public class ChatArea extends Panel implements ActionListener,Runnable

Socket socket=null;

DataInputStream in=null;

DataOutputStream out=null;

Thread threadMessage=null;

TextArea 谈话显示区,私聊显示区=null;

TextField 送出信息=null;

Button 确定,刷新谈话区,刷新私聊区;

Label 提示条=null;

String name=null;

Hashtable listTable;

List listComponent=null;

Choice privateChatList;

int width,height;

public ChatArea(String name,Hashtable listTable,int width,int height)

setLayout(null);

setBackground(Color.orange);

this.width=width;

this.height=height;

setSize(width,height);

this.listTable=listTable;

this.name=name;

threadMessage=new Thread(this);

谈话显示区=new TextArea(10,10);

私聊显示区=new TextArea(10,10);

确定=new Button("送出信息到:");

刷新谈话区=new Button("刷新谈话区");

刷新私聊区=new Button("刷新私聊区");

提示条=new Label("双击聊天者可私聊",Label.CENTER);

确定.addActionListener(this);

送出信息.addActionListener(this);

刷新谈话区.addActionListener(this);

刷新私聊区.addActionListener(this);

listComponent=new List();

listComponent.addActionListener(this);

privateChatList=new Choice();

privateChatList.add("大家(*)");

privateChatList.select(0);

add(谈话显示区);

add(私聊显示区);

add(listComponent);

add(提示条);

Panel pSouth=new Panel();

pSouth.add(送出信息);

pSouth.add(确定);

pSouth.add(privateChatList);

pSouth.add(刷新谈话区);

pSouth.add(刷新私聊区);

add(pSouth);

public void setName(String s)

name=s;

public void setSocketConnection(Socket socket,DataInputStream in,DataOutputStream out)

this.socket=socket;

this.in=in;

this.out=out;

threadMessage.start();

catch(Exception e)

public void actionPerformed(ActionEvent e)

if(e.getSource()==确定||e.getSource()==送出信息)

String message="";

String people=privateChatList.getSelectedItem();

people=people.substring(0,people.indexOf("("));

message=送出信息.getText();

if(message.length()0)

if(people.equals("大家"))

out.writeUTF("公共聊天内容:"+name+"说:"+message);

else

out.writeUTF("私人聊天内容:"+name+"悄悄地说:"+message+"#"+people);

catch(IOException event)

else if(e.getSource()==listComponent)

privateChatList.insert(listComponent.getSelectedItem(),0);

privateChatList.repaint();

else if(e.getSource()==刷新谈话区)

谈话显示区.setText(null);

else if(e.getSource()==刷新私聊区)

私聊显示区.setText(null);

public void run()

while(true)

String s=null;

s=in.readUTF();

if(s.startsWith("聊天内容:"))

String content=s.substring(s.indexOf(":")+1);

谈话显示区.append("\n"+content);

if(s.startsWith("私人聊天内容:"))

私聊显示区.append("\n"+content);

else if(s.startsWith("聊天者:"))

String people=s.substring(s.indexOf(":")+1,s.indexOf("性别"));

listTable.put(people,people+"("+sex+")");

listComponent.add((String)listTable.get(people));

listComponent.repaint();

else if(s.startsWith("用户离线:"))

String awayPeopleName=s.substring(s.indexOf(":")+1);

listComponent.remove((String)listTable.get(awayPeopleName));

谈话显示区.append("\n"+(String)listTable.get(awayPeopleName)+"离线");

listTable.remove(awayPeopleName);

catch(IOException e)

listComponent.removeAll();

listTable.clear();

谈话显示区.setText("和服务器的连接已中断\n必须刷新浏览器才能再次聊天");

break;

catch(InterruptedException e)

ChatServer.java

import java.util.*;

public class ChatServer

public static void main(String args[])

Socket you=null;

Hashtable peopleList;

peopleList=new Hashtable();

catch(IOException e1)

System.out.println("正在监听");

try {

you=server.accept();

InetAddress address=you.getInetAddress();

System.out.println("用户的IP:"+address);

catch (IOException e)

if(you!=null)

Server_thread peopleThread=new Server_thread(you,peopleList);

peopleThread.start();

else {

continue;

class Server_thread extends Thread

String name=null,sex=null;

File file=null;

DataInputStream in=null;

Hashtable peopleList=null;

Server_thread(Socket t,Hashtable list)

peopleList=list;

socket=t;

in=new DataInputStream(socket.getInputStream());

out=new DataOutputStream(socket.getOutputStream());

{ String s=null;

if(s.startsWith("姓名:"))

name=s.substring(s.indexOf(":")+1,s.indexOf("性别"));

sex=s.substring(s.lastIndexOf(":")+1);

boolean boo=peopleList.containsKey(name);

if(boo==false)

peopleList.put(name,this);

out.writeUTF("可以聊天:");

Enumeration enum=peopleList.elements();

while(enum.hasMoreElements())

Server_thread th=(Server_thread)enum.nextElement();

th.out.writeUTF("聊天者:"+name+"性别"+sex);

if(th!=this)

out.writeUTF("聊天者:"+th.name+"性别"+th.sex);

out.writeUTF("不可以聊天:");

else if(s.startsWith("公共聊天内容:"))

String message=s.substring(s.indexOf(":")+1);

((Server_thread)enum.nextElement()).out.writeUTF("聊天内容:"+message);

else if(s.startsWith("用户离开:"))

{ try

if(th!=thisth.isAlive())

th.out.writeUTF("用户离线:"+name);

catch(IOException eee)

peopleList.remove(name);

System.out.println(name+"用户离开了");

else if(s.startsWith("私人聊天内容:"))

String 悄悄话=s.substring(s.indexOf(":")+1,s.indexOf("#"));

String toPeople=s.substring(s.indexOf("#")+1);

Server_thread toThread=(Server_thread)peopleList.get(toPeople);

if(toThread!=null)

toThread.out.writeUTF("私人聊天内容:"+悄悄话);

out.writeUTF("私人聊天内容:"+toPeople+"已经离线");

catch(IOException ee)

import java.applet.*;

ClientChat.java

public class ClientChat extends Applet implements Runnable

InputNameTextField 用户提交昵称界面=null;

ChatArea 用户聊天界面=null;

Label 提示条;

Panel north, center;

Thread thread;

public void init()

int width=getSize().width;

int height=getSize().height;

listTable=new Hashtable();

setLayout(new BorderLayout());

用户提交昵称界面=new InputNameTextField(listTable);

int h=用户提交昵称界面.getSize().height;

用户聊天界面.setVisible(false);

提示条=new Label("正在连接到服务器,请稍等...",Label.CENTER);

提示条.setForeground(Color.red);

north=new Panel(new FlowLayout(FlowLayout.LEFT));

center=new Panel();

north.add(用户提交昵称界面);

north.add(提示条);

center.add(用户聊天界面);

add(north,BorderLayout.NORTH);

add(center,BorderLayout.CENTER);

validate();

public void start()

if(socket!=nullin!=nullout!=null)

{ try

in.close();

out.close();

catch(Exception ee)

catch (IOException ee)

提示条.setText("连接失败");

if(socket!=null)

InetAddress address=socket.getInetAddress();

提示条.setText("连接:"+address+"成功");

用户提交昵称界面.setSocketConnection(socket,in,out);

north.validate();

if(thread==null)

thread=new Thread(this);

thread.start();

public void stop()

thread=null;

this.showStatus(e.toString());

while(thread!=null)

if(用户提交昵称界面.get能否聊天()==true)

用户聊天界面.setVisible(true);

用户聊天界面.setName(用户提交昵称界面.getName());

用户聊天界面.setSocketConnection(socket,in,out);

提示条.setText("祝聊天愉快!");

center.validate();

Thread.sleep(100);

InputNameTextField.java

public class InputNameTextField extends Panel implements ActionListener,Runnable

TextField nameFile=null;

Checkbox male=null,female=null;

CheckboxGroup group=null;

Button 进入聊天室=null,退出聊天室=null;

Thread thread=null;

boolean 能否聊天=false;

public InputNameTextField(Hashtable listTable)

nameFile=new TextField(10);

group=new CheckboxGroup();

male=new Checkbox("男",true,group);

female=new Checkbox("女",false,group);

进入聊天室=new Button("进入");

退出聊天室=new Button("退出");

进入聊天室.addActionListener(this);

退出聊天室.addActionListener(this);

add(new Label("昵称:"));

add(nameFile);

add(male);

add(female);

add(进入聊天室);

add(退出聊天室);

退出聊天室.setEnabled(false);

public void set能否聊天(boolean b)

能否聊天=b;

public boolean get能否聊天()

return 能否聊天;

public String getName()

return name;

try{

nameFile.setText(""+e);

public Socket getSocket()

return socket;

if(e.getSource()==进入聊天室)

退出聊天室.setEnabled(true);

if(能否聊天==true)

nameFile.setText("您正在聊天:"+name);

this.setName(nameFile.getText());

String sex=group.getSelectedCheckbox().getLabel();

if(socket!=nullname!=null)

out.writeUTF("姓名:"+name+"性别:"+sex);

nameFile.setText("没有连通服务器"+ee);

if(e.getSource()==退出聊天室)

out.writeUTF("用户离开:");

String message=null;

if(in!=null)

message=in.readUTF();

nameFile.setText("和服务器断开"+e);

if(message.startsWith("可以聊天:"))

能否聊天=true;

else if(message.startsWith("聊天者:"))

String people=message.substring(message.indexOf(":")+1);

listTable.put(people,people);

else if(message.startsWith("不可以聊天:"))

能否聊天=false;

nameFile.setText("该昵称已被占用");

求Java Socket 聊天室代码

两个类,实现交互

import java.io.BufferedReader;

import java.io.BufferedWriter;

import java.io.InputStreamReader;

import java.io.OutputStreamWriter;

import java.io.PrintWriter;

import java.net.ServerSocket;

import java.net.Socket;

public class MutiChat

public static void main(String[] args)

MutiChat mc = new MutiChat();

mc.receive().start();

mc.send().start();

/**

* 接收信息

*

* @return

private Thread receive()

return new Thread()

ServerSocket server_socket = null;

Socket sk = null;

BufferedReader in = null;

sk = server_socket.accept();

in = new BufferedReader(new InputStreamReader(sk

java网络聊天室源代码_简易聊天室网页源代码-图3

while (true)

String str = in.readLine();

System.out.println(str);

} catch (Exception e)

};

private Thread send()

Socket client_socket = null;

PrintWriter out = null;

in = new BufferedReader(

new InputStreamReader(System.in));

out = new PrintWriter(new BufferedWriter(

new OutputStreamWriter(client_socket

.getOutputStream())), true);

out.println(str);

Thread.sleep(1000);

} catch (Exception ex)

ex.printStackTrace();

以上就是土嘎嘎小编为大家整理的java网络聊天室源代码相关主题介绍,如果您觉得小编更新的文章只要能对粉丝们有用,就是我们最大的鼓励和动力,不要忘记讲本站分享给您身边的朋友哦!!

版权声明:倡导尊重与保护知识产权。未经许可,任何人不得复制、转载、或以其他方式使用本站《原创》内容,违者将追究其法律责任。本站文章内容,部分图片来源于网络,如有侵权,请联系我们修改或者删除处理。

编辑推荐

热门文章