‘壹’ 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.