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方法所在的类,这样就能启动
