❶ android消息推送GCM、XMPP、MQTT三种方案的优劣,越仔细越好,有具体分析更好!
android消息推送GCM、XMPP、MQTT三种方案的优劣:❷ java.编写双人聊天程序和多人聊天室的区别在哪里
双人聊铅团尘天,可以采用两槐禅人之间建立socket连接的方式。多人的话。必须连或雀接服务器。并定时从服务器取得他人发送的信息。
❸ 如何用Java编写一个聊天室程序,可以支持单聊和多聊
聊天程序又叫即时通讯系统
分类两部分:客户端和服务端
客户端:用户聊天的界面专
服务端:接收消属息并转发到指定用户
其中服务端和客户端用tcp或者udp连接,使用socket编程完成通信。
按着这个思路可以开发出一套聊天程序
客户端常用界面 bs版本的又layim
服务端 openfire或者自己实现
❹ 用java实现多人的语音聊天,大概要用到哪些方面的东西呢 关键是怎么实现多人
要用到多抄线程、socket通信、JMF多媒体框架,想做的好,还要考虑设计模式。
多人的实现,就是多个客户端连接服务器而已(就像很多人连接网游服务器打游戏一样),当有语音数据时,广播发给相关的客户端接收者。
❺ 如何用java做一个聊天小程序 要求使用图形用户界面,可以实现一个聊天室中多人聊天,也可以两人私聊,
给你一个简单的实现吧,注意一定要先运行MyServer.java
//MyCilent.java
import java.io.*;
import java.net.*;
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
public class MyClient extends JFrame implements ActionListener{
JTextField tf;
JTextArea tx;
JButton bt;
PrintWriter out;
public MyClient(){
tf=new JTextField(20);
tx=new JTextArea();
tx.setLineWrap(true);
tx.setWrapStyleWord(true);
JPanel pan=new JPanel();
jscrollPane jsp=new JScrollPane(tx);
add(jsp,"Center");
bt=new JButton("SEND");
bt.addActionListener(this);
pan.add(tf);
pan.add(bt);
add(pan,"South");
this.addWindowListener(new WindowAdapter(){
public void windowClosing(WindowEvent e){
System.exit(0);
}
});
setTitle("THE CLIENT");
setSize(400,300);
setVisible(true);
try{
Socket socket=new Socket("127.0.0.1",1680);
out=new PrintWriter(socket.getOutputStream(),true);
InputStreamReader in = new InputStreamReader(socket.getInputStream());
BufferedReader sin=new BufferedReader(in);
String s;
while(true){
s=sin.readLine();
tx.append("#Server Said#: "+s+"\n");
}
}catch(Exception e){
e.printStackTrace();
}
}
public void actionPerformed(ActionEvent e){
if(e.getSource()==bt){
tx.append("@Client Said@: "+tf.getText()+"\n");
out.println(tf.getText());
tf.setText("");
}
}
public static void main(String[] args){
MyClient mct = new MyClient();
}
}
//MyServer.java
import java.io.*;
import java.net.*;
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
public class MyServer extends JFrame implements ActionListener{
JTextField tf;
JTextArea tx;
JButton bt;
JScrollPane jsp;
JPanel pan;
PrintWriter out;
public MyServer(){
tx=new JTextArea();
tx.setLineWrap(true);
tx.setWrapStyleWord(true);
jsp=new JScrollPane(tx);
tf=new JTextField(20);
bt=new JButton("SEND");
bt.addActionListener(this);
pan=new JPanel();
pan.add(tf);
pan.add(bt);
add(pan,"South");
add(jsp,"Center");
this.addWindowListener(new WindowAdapter(){
public void windowClosing(WindowEvent e){
System.exit(0);
}
});
setTitle("THE SERVER");
setSize(400,300);
setVisible(true);
try{
ServerSocket server = new ServerSocket(1680);
Socket socket = server.accept();
InputStreamReader in = new InputStreamReader(socket.getInputStream());
BufferedReader sin=new BufferedReader(in);
out=new PrintWriter(socket.getOutputStream(),true);
while(true){
String s=sin.readLine();
tx.append("@Client Said@: "+s+"\n");
}
}catch(Exception e){
e.printStackTrace();
}
}
public void actionPerformed(ActionEvent e){
if(e.getSource()==bt){
String st = tf.getText();
tx.append("#Server Said#: "+st+"\n");
out.println(st);
tf.setText("");
}
}
public static void main(String[] args){
MyServer msr = new MyServer();
}
}
❻ 用java编写一个多人聊天室可以 实现私聊,群聊,文件传送的功能
你这就整麻烦了,如果你只是想实现这些功能,不要求速度也不要存储空间,也不要求有界面那还比较简单,实体类序列化所有传送对象,在socket类中用object流直接传和接收所有的东西(包括聊天信息和文件)再用多线程实现群聊.大概两三天可以搞定.
如果你像做得类似于QQ一样,那就不是几天的事情了
❼ 求解,JAVA语言多人语音聊天怎么解决混音问
两路音视频流,符合以下条件才能混合:
格式相同,要解压成 PCM 格式。回
采样答率相同,要转换成相同的采样率。主流采样率包括:16k Hz、32k Hz、44.1k Hz 和 48k Hz。
帧长相同,帧长由编码格式决定,PCM 没有帧长的概念,开发者自行决定帧长。为了和主流音频编码格式的帧长保持一致,推荐采用 20ms 为帧长。
位深(Bit-Depth)或采样格式 (Sample Format) 相同,承载每个采样点数据的 bit 数目要相同。
声道数相同,必须同样是单声道或者双声道 (立体声)。这样,把格式、采样率、帧长、位深和声道数对齐了以后,两个音频流就可以混合了。
JAVA代码问题可以到即构开发者中心看看
❽ java多人聊天一般都是怎么搭建的
Java多人聊天可以使用Java的Socket编程实现,主要的思路是:使用服务器来维护所有客户端的连接,并将客户端之间的聊天信息进行转发。巧稿岁
具体的实现步骤如下:
创建服务器端:使用ServerSocket类创建一个服务器端,并监听指定的端口,等待客户端的连接。
创建客户端:使用Socket类创建一个客户端,并连接到服务器端。
实现聊天功能:客户端和服务器端之间可以通过输入和输出流进行通信,客户端将聊天信息发送给服务器,服务器再将其转发给其他客户端。
处理异常:在实现聊天功能时,需要注意处理可能出现的异常,例如连接异常、孝睁输入输出异常等等。
一个简单的Java多人聊天程序的代码框架如下:
服务器端:
import java.io.IOException;
import java.net.ServerSocket;
import java.net.Socket;
import java.util.ArrayList;
public class ChatServer {
private ServerSocket serverSocket;
private ArrayList<ClientHandler> clients;
public ChatServer(int port) throws IOException {
serverSocket = new ServerSocket(port);
clients = new ArrayList<ClientHandler>();
System.out.println("服务器已启动,等敬差待客户端连接...");
}
public void start() throws IOException {
while (true) {
Socket socket = serverSocket.accept();
ClientHandler client = new ClientHandler(socket, this);
clients.add(client);
client.start();
}
}
public void broadcast(String message) {
for (ClientHandler client : clients) {
client.sendMessage(message);
}
}
public void removeClient(ClientHandler client) {
clients.remove(client);
}
public static void main(String[] args) throws IOException {
ChatServer server = new ChatServer(12345);
server.start();
}
}
客户端:
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.PrintWriter;
import java.net.Socket;
public class ChatClient {
private Socket socket;
private BufferedReader reader;
private PrintWriter writer;
private String name;
public ChatClient(String serverAddress, int port, String name) throws IOException {
socket = new Socket(serverAddress, port);
reader = new BufferedReader(new InputStreamReader(socket.getInputStream()));
writer = new PrintWriter(socket.getOutputStream(), true);
this.name = name;
}
public void start() throws IOException {
System.out.println("欢迎来到聊天室!");
new Thread(new IncomingMessageHandler()).start();
new Thread(new OutgoingMessageHandler()).start();
}
private class IncomingMessageHandler implements Runnable {
@Override
public void run() {
try {
while (true) {
String message = reader.readLine();
if (message == null) {
break;
}
System.out.println(message);
}
} catch (IOException e) {
e.printStackTrace();
} finally {
close();
}
}
}
private class OutgoingMessageHandler implements Runnable {
@Override
public void run() {
BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));
try {
while (true) {
String message = reader.readLine();
if (message.equals("quit")) {
break;
}
writer.println(name + ": " + message);
}
} catch (IOException e) {
e.printStackTrace;
} finally {
close();
}
}
}