『壹』 java 如何實現簡單的網路聊天功能,給點思路嘛謝謝,想寫寫,但是完全沒有思路
網路聊天,比如A跟B聊天,首先A和B都必須連接到公用的伺服器,然後伺服器根據消息的接受者來講消息轉發給對應的人。比如A給B發消息,A首先將消息發送個伺服器,伺服器接收到該消息,然後看到是A給B發的消息,然後將消息轉發給B。A和B不能直接通信,而是用伺服器周轉。所以你需要實現一個服務端,一個客戶端,然後服務端可以同時與多個客戶端建立連接,然後服務端實現消息的轉發。
『貳』 java網路編程 實現極簡單的聊天功能
在同一區域網環境是 應該是可以的! 程序裡面只要將Beijing.java里的IP地址改為Shanghai這台機器的地址 ,Shanghai.java里的IP地址改為Beijing這台機器的地址,應該就OK
『叄』 高手進,java實現聊天功能
。。。這個我以前也遇到過、不過我是用C#寫的、不過後來也有java的、你可以、使用Swing做的簡單界面,及使用Socket套接字實現簡單聊天 。。。。。。但是、我不知道你問的是C/S模式還是B/S 模式?
其中、B/S模式可以用Servlet來實現,思路是通過Context上下文綁定參數實現
而C/S模式的,是通過RMI遠程調用的方法實現的。。。先給你個C/S模式的核心代碼。。。import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import java.io.*;
import java.net.*;public class Server extends JFrame
{
public static void main(String [] args)
{
Server server=new Server();
//設定框架的關閉方式
server.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
//顯示框架
server.setVisible(true);
server.pack();
CreateServer cs=new CreateServer(server);
}
// 設定框架的寬度和高度
private static final int WIDTH=450;
private static final int HEIGHT=450;
// 聊天信息框
JTextArea mainArea=new JTextArea(12,35);
// 發送信息的填寫框
JTextArea sendArea=new JTextArea(5,30);
// 構造函數
public Server()
{
//定位框架
Toolkit kit=Toolkit.getDefaultToolkit();
Dimension screenSize=kit.getScreenSize();//獲取電腦當前解析度
int width=screenSize.width;
int height=screenSize.height;
int x=(width-WIDTH)/2;
int y=(height-HEIGHT)/2;
//設置窗口顯示位置
setLocation(x,y);
//設置框架大小
setSize(WIDTH,HEIGHT);
//設置標題
setTitle("小新新聊天伺服器");
//設置窗口的自定義大小
setResizable(false);
//在內容表格上創建3個面板並加入到內容表格
Container con=this.getContentPane();
JPanel labelPanel=new LabelPanel();
con.add(labelPanel,BorderLayout.NORTH);
JPanel contentPanel=new ContentPanel();
con.add(contentPanel,BorderLayout.CENTER);
JPanel sendPanel=new SendPanel();
con.add(sendPanel,BorderLayout.SOUTH);
}
//聊天窗口的標題面板
class LabelPanel extends JPanel
{
public LabelPanel()
{
Font font=new Font("Dialog",Font.BOLD,18);
JLabel label=new JLabel("歡迎使用小新新聊天伺服器");
label.setFont(font);
this.add(label);
}
}
// 聊天信息查看面板
//該面板內的區域為不可編輯區域
class ContentPanel extends JPanel
{
public ContentPanel()
{
FlowLayout fl=new FlowLayout(FlowLayout.CENTER);
this.setLayout(fl);
mainArea.setLineWrap(true);
mainArea.setEditable(false);
JScrollPane scrollPanel=new JScrollPane(mainArea);
this.add(scrollPanel);
}
}
// 填寫發送信息的面板
class SendPanel extends JPanel
{
public SendPanel()
{
//面板的組件之間水平分隔15像素,垂直間距10像素
FlowLayout layout=new FlowLayout(FlowLayout.LEFT,15,10);
this.setLayout(layout);
sendArea.setLineWrap(true);
JScrollPane scrollPanel=new JScrollPane(sendArea);
this.add(scrollPanel);
JButton send=new JButton("發送");
this.add(send);
//對發送按鈕注冊動作監聽器
send.addActionListener(new ActionListener()
{
public void actionPerformed(ActionEvent e)
{
String msg=sendArea.getText();
if(!msg.equals(""))
{
mainArea.append("【伺服器】:"+msg+"\n");
sendArea.setText("");
CreateServer.sendMsg(msg);
}
else
{
return;
}
}
});
}
}
}
//創建伺服器ServerSocket的類
class CreateServer extends Thread
{
private Server server;
private static BufferedReader in=null;//存儲客戶端發送到伺服器的數據
private static PrintWriter out=null;//存儲伺服器發送到客戶端的數據
private Socket socket=null;//等待客戶端連接socket
private ServerSocket ss=null;//開啟伺服器socket連接
//構造函數
public CreateServer(Server s)
{
this.server=s;
try
{
ss=new ServerSocket(2345);
System.out.println("伺服器成功啟動...!");
socket=ss.accept();//等待客戶端請求
//獲取輸入到伺服器的數據
in=new BufferedReader(new InputStreamReader(socket.getInputStream()));
//獲取輸出到客戶端的數據
out=new PrintWriter(socket.getOutputStream(),true);
out.println("你好!");
}
catch(Exception r)
{
r.printStackTrace();
}
this.start();//啟動線程
}
//實現信息發送到客戶端的發送方法
public static void sendMsg(String s)
{
try
{
out.println("【伺服器】:"+s+"\n");
}
catch(Exception e)
{
System.out.println("發送信息失敗...!!");
e.printStackTrace();
}
}
// 線程Thread類的run方法實現對客戶端發送來的數據監聽
//線程啟動後開始該方法,執行線程體
public void run()
{
String msg="";
while(true)
{
try
{
msg=in.readLine();
//Thread.sleep(500);//線程睡眠
}
catch (SocketException ex)
{
ex.printStackTrace();
break;
}
catch(IOException r)
{
r.printStackTrace();
break;
}
//若從客戶端獲取的信息不為空對象也不為空串
//則把信息顯示在聊天信息文本域
if(msg!=null && msg.trim()!="")
{
server.mainArea.append(msg+"\n");
}
}
}
}
『肆』 java語音聊天室怎樣實現啊
實現java語音聊天室的方法很簡單,要麼自己從零研發,要麼直接使用別人的成品,意思是找網上的第三方,他們自己有研發產品的。建議考慮ZEGO即構科技,他們的語聊房SDK很好用的,提供低延遲和低成本的方案供選擇,在保障語音質量的前提下,碼率最低可到8kbps,可以試試。
『伍』 java socket 和php 怎樣實現聊天功能,求幫忙
[java]
view
plain
<span
style="font-size:16px;">package
demo.net;
import
java.io.DataInputStream;
import
java.io.DataOutputStream;
import
java.io.IOException;
import
java.net.ServerSocket;
import
java.net.Socket;
import
java.util.Scanner;
/**
*
模擬qq聊天功能:
實現客戶端與伺服器(一對一)的聊天功能,客戶端首先發起聊天,輸入的內容在伺服器端和客戶端顯示,
*
然後伺服器端也可以輸入信息,同樣信息也在客戶端和伺服器端顯示
*/
//
伺服器類
public
class
ChatServer
{
private
int
port
=
8189;//
默認伺服器埠
public
ChatServer()
{
}
//
創建指定埠的伺服器
public
ChatServer(int
port)
{
this.port
=
port;
}
//
提供服務
public
void
service()
{
try
{//
建立伺服器連接
ServerSocket
server
=
new
ServerSocket(port);
//
等待客戶連接
Socket
socket
=
server.accept();
try
{
//
讀取客戶端傳過來信息的DataInputStream
DataInputStream
in
=
new
DataInputStream(socket
.getInputStream());
//
向客戶端發送信息的DataOutputStream
DataOutputStream
out
=
new
DataOutputStream(socket
.getOutputStream());
//
獲取控制台輸入的Scanner
Scanner
scanner
=
new
Scanner(System.in);
while
(true)
{
//
讀取來自客戶端的信息
String
accpet
=
in.readUTF();
System.out.println(accpet);
String
send
=
scanner.nextLine();
System.out.println("伺服器:"
+
send);
//
把伺服器端的輸入發給客戶端
out.writeUTF("伺服器:"
+
send);
}
}
finally
{//
建立連接失敗的話不會執行socket.close();
socket.close();
}
}
catch
(IOException
e)
{
e.printStackTrace();
}
}
public
static
void
main(String[]
args)
{
new
ChatServer().service();
}
}
</span>
『陸』 java中怎樣實現網上聊天對話功能
如果採用HTTP協議,也就是網頁傳輸那種方式很簡單,同過內嵌對象象application,session為核心的JSP編程,即可實現。但基於TCP/IP通訊方式,無論是在JAVAEE還是在安卓系統,這種開發出來的聊天通訊更快,更實用。
『柒』 用java設計網頁聊天室,要實現那些功能呢
首先是登錄,然後顯示聊天室窗體,窗體上有在線人員,然後實現聊天功能,當然是AJAX技術實現的,也可以擴展比如說添加不同字體、添加頭像等
『捌』 java如何實現一對一聊天謝謝了。
WebSocket 是 HTML5 開始提供的一種在單個 TCP 連接上進行全雙工通訊的協議。
WebSocket 使得客戶端和伺服器之間的數據交換變得更加簡單,允許服務端主動向客戶端推送數據。在 WebSocket API 中,瀏覽器和伺服器只需要完成一次握手,兩者之間就直接可以創建持久性的連接,並進行雙向數據傳輸。
在 WebSocket API 中,瀏覽器和伺服器只需要做一個握手的動作,然後,瀏覽器和伺服器之間就形成了一條快速通道。兩者之間就直接可以數據互相傳送。
『玖』 如何實現java聊天功能的技術用到了哪些
java聊天功能主要涉及網路編程,而網路通訊常用的就http,webservice,tcp,udp等協議,如果想用基於java的組件建議用mina.