本文目錄一覽:
java語音聊天室怎樣實現啊?
實現java語音聊天室的方法很簡單,要麼自己從零研發,要麼直接使用別人的成品,意思是找網上的第三方,他們自己有研發產品的。建議考慮ZEGO即構科技,他們的語聊房SDK很好用的,提供低延遲和低成本的方案供選擇,在保障語音質量的前提下,碼率最低可到8kbps,可以試試。
用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聊天功能其實很簡單,你可以直接使用別人的軟體包,意思是找網上的第三方sdk直接接入,建議考慮ZEGO即構科技,他們的即時通訊SDK很好用的(支持Java等市面上常見的開發語言),提供低延遲和低成本的方案供選擇⌄保障消息發送質量,消息必達,可節省90%開發時間,非常值得推薦。
原創文章,作者:XSLG,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/132873.html