java聊天软件怎么发文件
A. 如何用Java写聊天软件
github上很多的e
B. 怎么样用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 = "127.0.0.1";
//发送端口9527
public static final int sendPort = 8000;
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();
}
}
}
C. 怎么用java做局域网的聊天工具(聊天室)
汗,LZ真是牛,这可不是一个小程序,怎么可能全部代码贴出来,也没工夫回写额,以前在学校我做过,答我把我的思路给你好了,首先写出服务端和客户端,多线程实现收发,支持点对点聊天,如果这些LZ不会,那就先去看看基础吧,在此基础上,创建登录用户类,有用户ID(String),昵称和socket属性,一个房间管理类,用来管理私聊,群聊或者2个以上人的聊天,有一个MAP属性,以聊天者ID相加的值为建,以保存所有聊天者socket的List为值,其中群聊是MAP的默认属性,登陆一个用户,value就添加他socket,当用户选择一个人私聊,或者几个人群聊时,MAP创建相应的映射,就这样了,当时我是全部实现了,但在关闭socket时有些问题。
具体逻辑和其中BUG,自己调和写吧,例如用ID相加为建有时会有问题。
D. 用java怎么开发聊天软件
做界面的话复可以有制b/s,c/s结构两种。b/s就是浏览器/服务器的方式,用web的方式进行聊天。c/s就是client/server的方式,桌面程序样子的,一般都是这个方式。
java做桌面界面的一般有awt/swing/swt三种类库。最流行的是swing,老一点的是awt,如果你想做的界面和操作系统的界面一直(感官一样),那就用swt,swt是eclipse基金会为了开发eclipse而开发的java利用操作系统原生窗口的一组api,更快速方便。
如果你只是完成任务,就看看swing吧,很好的java图形库。另外,java基础知识也要很好才行。要能够语音视频的话,还要学jmf,这个比较难一点。
针对局域网的,那就另加一些socket编程的知识了
E. 用java做了一个类似于QQ的聊天软件,请问怎么上传到服务器
正常的聊天软件需要包含服务端和客户端 你需要上传的是服务端,不知道你服务端是swing写的还是 只有控制台,不管怎么写的,启动程序 就需要使用命令行调用你服务端的main方法所在的类,这样就能启动