「怎么用java写聊天工具」怎么用java写聊天工具文档

博主:adminadmin 2023-01-20 07:39:11 312

本篇文章给大家谈谈怎么用java写聊天工具,以及怎么用java写聊天工具文档对应的知识点,希望对各位有所帮助,不要忘了收藏本站喔。

本文目录一览:

用JAVA 编写简单网络聊天程序

/**

* 基于UDP协议的聊天程序

*

* 2007.9.18

* */

//导入包

import java.awt.*;

import java.awt.event.*;

import java.awt.event.ActionEvent;

import java.awt.event.ActionListener;

import javax.swing.*;

import java.net.*;

public class Chat extends JFrame implements ActionListener

{

//广播地址或者对方的地址

public static final String sendIP = "172.18.8.255";

//发送端口9527

public static final int sendPort = 9527;

JPanel p = new JPanel();

List lst = new List(); //消息显示

JTextField txtIP = new JTextField(18); //填写IP地址

JTextField txtMSG = new JTextField(20); //填写发送消息

JLabel lblIP = new JLabel("IP地址:");

JLabel lblMSG = new JLabel("消息:");

JButton btnSend = new JButton("发送");

byte [] buf;

//定义DatagramSocket的对象必须进行异常处理

//发送和接收数据报包的套接字

DatagramSocket ds = null;

//=============构造函数=====================

public Chat()

{

CreateInterFace();

//注册消息框监听器

txtMSG.addActionListener(this);

btnSend.addActionListener(this);

try

{

//端口:9527

ds =new DatagramSocket(sendPort);

}

catch(Exception ex)

{

ex.printStackTrace();

}

//============接受消息============

//匿名类

new Thread(new Runnable()

{

public void run()

{

byte buf[] = new byte[1024];

//表示接受数据报包

while(true)

{

try

{

DatagramPacket dp = new DatagramPacket(buf,1024,InetAddress.getByName(txtIP.getText()),sendPort);

ds.receive(dp);

lst.add("【消息来自】◆" + dp.getAddress().getHostAddress() + "◆"+"【说】:" + new String (buf,0,dp.getLength()) /*+ dp.getPort()*/,0);

}

catch(Exception e)

{

if(ds.isClosed())

{

e.printStackTrace();

}

}

}

}

}).start();

//关闭窗体事件

this.addWindowListener(new WindowAdapter()

{

public void windowClosing(WindowEvent w)

{

System.out.println("test");

int n=JOptionPane.showConfirmDialog(null,"是否要退出?","退出",JOptionPane.YES_NO_OPTION);

if(n==JOptionPane.YES_OPTION)

{

dispose();

System.exit(0);

ds.close();//关闭ds对象//关闭数据报套接字

}

}

});

}

//界面设计布局

public void CreateInterFace()

{

this.add(lst,BorderLayout.CENTER);

this.add(p,BorderLayout.SOUTH);

p.add(lblIP);

p.add(txtIP);

p.add(lblMSG);

p.add(txtMSG);

p.add(btnSend);

txtIP.setText(sendIP);

//背景颜色

lst.setBackground(Color.yellow);

//JAVA默认风格

this.setUndecorated(true);

this.getRootPane().setWindowDecorationStyle(JRootPane.FRAME);

this.setSize(600,500);

this.setTitle("〓聊天室〓");

this.setResizable(false);//不能改变窗体大小

this.setLocationRelativeTo(null);//窗体居中

this.setDefaultCloseOperation(JFrame.DO_NOTHING_ON_CLOSE);

this.setVisible(true);

txtMSG.requestFocus();//消息框得到焦点

}

//===============================Main函数===============================

public static void main(String[]args)

{

new Chat();

}

//================================发送消息===============================

//消息框回车发送消息事件

public void actionPerformed(ActionEvent e)

{

//得到文本内容

buf = txtMSG.getText().getBytes();

//判断消息框是否为空

if (txtMSG.getText().length()==0)

{

JOptionPane.showMessageDialog(null,"发送消息不能为空","提示",JOptionPane.WARNING_MESSAGE);

}

else{

try

{

InetAddress address = InetAddress.getByName(sendIP);

DatagramPacket dp = new DatagramPacket(buf,buf.length,InetAddress.getByName(txtIP.getText()),sendPort);

ds.send(dp);

}

catch(Exception ex)

{

ex.printStackTrace();

}

}

txtMSG.setText("");//清空消息框

//点发送按钮发送消息事件

if(e.getSource()==btnSend)

{

buf = txtMSG.getText().getBytes();

try

{

DatagramPacket dp = new DatagramPacket(buf,buf.length,InetAddress.getByName(txtIP.getText()),sendPort);

}

catch(Exception ex)

{

ex.printStackTrace();

}

txtMSG.setText("");//清空消息框

txtMSG.requestFocus();

}

}

}

java聊天功能怎么做的?有没有知道的可以指导一下吗?

聊天具体是这么聊,聊天室、群聊、一对一。java其实websocket足矣,ws服务器部署起来,客户端程序连接ws服务器服务,用服务器转发作为消息传输机制,当然你要大文件传输和视频通话就用socket转发连接,p2p通信,这里的p2pjava因为都是服务器部署,不需要做外网打洞穿透,因为web服务器他是本地环境,明白不。你用windows应用程序就需要外网穿透打洞,你不可能视频数据也让服务器转发吧,聊天人数越来越多,服务器承受不了,它需要服务器指派点对点单向传输,不去途径服务器。

如何用Java写聊天软件?

做界面肯定要swing 然后结合Socket编写网络程序 多个客户端的话 要启动线程来配置每个客户端

java聊天功能怎么做?

想要实现java聊天功能比较简单,要么直接找源码,要么使用第三方的sdk做一些开发。建议可以考虑接入ZEGO即时通讯SDK来实现,支持Android java开发,集成方便,一对一、一对多聊天都可快速搭建,重要的是不担心消息会丢失,千万级并发也稳定,个人建议你们可以试试。

java聊天窗口的实现

编写一数据报通信程序 实现简单的聊天功能

聊天内容 和 输入文本 分别为当前聊天的历史信息和当前要传送出去的聊天文本 确定 清空 退出 三个按钮分别实现发送当前聊天文本 清空当前聊天文本和退出系统的功能 import java awt Font;

import java awt event ActionEvent;

import java awt event ActionListener;

import java awt event WindowEvent;

import java awt event WindowListener;

import DatagramPacket;

import DatagramSocket;

import InetAddress;

import SocketException;

import javax swing JButton;

import javax swing JFrame;

import javax swing JLabel;

import javax swing JScrollBar;

import javax swing JScrollPane;

import javax swing JTextArea;

import javax swing JTextField;

public class Frame extends JFrame implements WindowListener{

private JTextArea text;

private JTextField ipText;

private JTextField sendText;

private JButton button;

private JButton button ;

private JButton button ;

private DatagramSocket socket;

private JScrollBar vsBar;

public Frame(){

setTitle( 聊天器 );

setBounds( );

text=new JTextArea();

text setEditable(true);

setLayout(null);

JScrollPane textPanel = new JScrollPane(text);

vsBar = textPanel getVerticalScrollBar();

textPanel setBounds( );

getContentPane() add(textPanel);

JLabel label=new JLabel( 请输入对方IP );

label setFont(new Font( Font BOLD ));

label setBounds( );

getContentPane() add(label);

ipText = new JTextField();

ipText setBounds( );

getContentPane() add(ipText);

button=new JButton();

button setText( 确定 );

button setBounds( );

button setFont(new Font( Font BOLD ));

getContentPane() add(button);

button addActionListener(new send());

button =new JButton( 清空 );

button setBounds( );

button setFont(new Font( Font BOLD ));

getContentPane() add(button );

button addActionListener(new clear());

button =new JButton( 退出 );

button setBounds( );

button setFont(new Font( Font BOLD ));

getContentPane() add(button );

button addActionListener(new exit());

this addWindowListener(this);

sendText = new JTextField();

sendText setBounds( );

getContentPane() add(sendText);

//server();

pack();

setVisible(true);

}

class send implements ActionListener{

public void actionPerformed(ActionEvent e) {

try{

String ip=ipText getText();

InetAddress address=InetAddress getByName(ip);

byte[] data=sendText getText() getBytes();

DatagramPacket dp=new DatagramPacket(data data length address );

String myip=InetAddress getLocalHost() getHostAddress();

text append(myip+ :\n +sendText getText()+ \n );

socket send(dp);

sendText setText(null);

}catch(Exception e ){

System out println(e );

}

}

}

class clear implements ActionListener{

public void actionPerformed(ActionEvent e) {

text setText( );

}

}

class exit implements ActionListener{

public void actionPerformed(ActionEvent e) {

System exit( );

}

}

private void server() {

try {

socket=new DatagramSocket( );

byte[] buf=new byte[ ];

final DatagramPacket dp =new DatagramPacket(buf buf length);

Runnable runnable=new Runnable(){

public void run(){

while(true){

try{

Thread sleep( );

socket receive(dp );

String message=new String(dp getData() dp getLength());

String ip=dp getAddress() getHostAddress();

if(!InetAddress getLocalHost() getHostAddress() equals(ip))

text append(ip+ :\n +message+ \n );

}catch(Exception e){

System out println(e);

}

}

}

};

new Thread(runnable) start();

} catch (SocketException e ) {

e printStackTrace();

}

}

public static void main(String[] args) {

Frame frame=new Frame();

}

public void windowActivated(WindowEvent e) {

// TODO Auto generated method stub

}

public void windowClosed(WindowEvent e) {

// TODO Auto generated method stub

}

public void windowClosing(WindowEvent e) {

// TODO Auto generated method stub

System exit( );

}

public void windowDeactivated(WindowEvent e) {

// TODO Auto generated method stub

}

public void windowDeiconified(WindowEvent e) {

// TODO Auto generated method stub

}

public void windowIconified(WindowEvent e) {

// TODO Auto generated method stub

}

public void windowOpened(WindowEvent e) {

// TODO Auto generated method stub

}

lishixinzhi/Article/program/Java/hx/201311/25580

关于怎么用java写聊天工具和怎么用java写聊天工具文档的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。