javaudp聊天室(如何用Java编写一个聊天室程序,可以支持单聊和多聊)
本文目录
- 如何用Java编写一个聊天室程序,可以支持单聊和多聊
- 用java语言实行一个UDP聊天室 多客户 无图形用户界面
- java UDP 实现 多人聊天
- 我想用java中的udp做聊天工具怎么连接局域网两台电脑,举出具体事例,有代码的
- 急求一个关于UDP的JAVA实现多人聊天源代码
如何用Java编写一个聊天室程序,可以支持单聊和多聊
聊天程序又叫即时通讯系统分类两部分:客户端和服务端客户端:用户聊天的界面服务端:接收消息并转发到指定用户其中服务端和客户端用tcp或者udp连接,使用socket编程完成通信。按着这个思路可以开发出一套聊天程序客户端常用界面 bs版本的又layim服务端 openfire或者自己实现
用java语言实行一个UDP聊天室 多客户 无图形用户界面
这是很久以前在网上找的,略作修改的一个小案例UDP聊天的,供你参考,改改里面的ip地址。import java.io.BufferedReader;import java.io.IOException;import java.io.InputStreamReader;import java.net.DatagramPacket;import java.net.DatagramSocket;import java.net.InetSocketAddress;public class UDPClient { public static void main(String args) throws IOException { new UDPClient().go(); } private void go() { ClientSendThread send = new ClientSendThread(); new Thread(send).start(); ClientRecvThread recv = new ClientRecvThread(); new Thread(recv).start(); } class ClientSendThread implements Runnable { @Override public void run() { try { DatagramSocket ds = new DatagramSocket(); String str = ““; byte buf = null; while (true) { System.out.println(“请输入》“); BufferedReader br = new BufferedReader( new InputStreamReader(System.in)); str = br.readLine(); if (“bye“.equals(str)) break; buf = str.getBytes(); // System.out.println(“-----buf.length-------“ + buf.length); DatagramPacket dp = new DatagramPacket(buf, buf.length, new InetSocketAddress(“127.0.0.1“, 5678)); ds.send(dp); buf = null; } ds.close(); } catch (IOException e) { e.printStackTrace(); } } } class ClientRecvThread implements Runnable { @Override public void run() { byte buf = new byte; //接收端的端口需要指定,不然发送端不知道向哪个端口发送数据包 DatagramSocket ds; try { ds = new DatagramSocket(5679); String message = ““; DatagramPacket dp = null; while(true){ dp = new DatagramPacket(buf, buf.length); ds.receive(dp); message = new String(buf,0,dp.getLength()); System.out.println(“接收到Server端信息为:“+message); } } catch (IOException e) { e.printStackTrace(); } } } }import java.io.BufferedReader;import java.io.IOException;import java.io.InputStreamReader;import java.net.DatagramPacket;import java.net.DatagramSocket;import java.net.InetSocketAddress;public class UDPServer { public static void main(String args) throws IOException { new UDPServer().go(); } private void go() { //服务端启动2个线程,1个发送,1个接收 ServerSendThread send = new ServerSendThread(); new Thread(send).start(); ServerRecvThread recv = new ServerRecvThread(); new Thread(recv).start(); } // 服务端发送线程 class ServerSendThread implements Runnable{ @Override public void run() { try { DatagramSocket ds = new DatagramSocket(); String str = ““; byte buf = null; while (true) { System.out.println(“请输入》“); BufferedReader br = new BufferedReader( new InputStreamReader(System.in)); str = br.readLine(); if (“bye“.equals(str)) break; buf = str.getBytes(); DatagramPacket dp = new DatagramPacket(buf, buf.length, new InetSocketAddress(“192.163.20.61“, 5679)); ds.send(dp); buf = null; } ds.close(); } catch (IOException e) { e.printStackTrace(); } } } // 服务端接收线程 class ServerRecvThread implements Runnable{ @Override public void run() { byte buf = new byte; //接收端的端口需要指定,不然发送端不知道向哪个端口发送数据包 DatagramSocket ds; try { ds = new DatagramSocket(5678); String message = ““; while(true){ DatagramPacket dp = new DatagramPacket(buf, buf.length); ds.receive(dp); message = new String(buf,0,dp.getLength()); System.out.println(“接收到Client端的信息为:“+message); } } catch (IOException e) { e.printStackTrace(); } } } }
java UDP 实现 多人聊天
UDP也可以和TCP那样遍历list然后发送啊客户端向外面开一个UDP端口接受数据报然后服务器这边要是有消息要发送就直接发送数据报包就可以了嘛UDP都不用保持着连接的,比TCP还简单些另外也可以用组播来实现,搜索下java UDP 组播,你能找到不少实例性的代码,也有聊天室的代码
我想用java中的udp做聊天工具怎么连接局域网两台电脑,举出具体事例,有代码的
首先确定两台电脑都在同一个局域网。两台电脑都要装有java的运行环境,(直接两台电脑都装jdk吧 ,jre也是可以的)把代码分别拷贝到两台电脑上,假如用你的电脑做服务器,另一台电脑做客户端,先起你电脑的服务器,再在你电脑起一个客户端,然后在另一台电脑上再起一个客户端,这样两台电脑的客户端就可以通讯了。注意:另一台电脑代码上面的IP地址要正确真上你电脑的IP地址不懂的再继续问
急求一个关于UDP的JAVA实现多人聊天源代码
import java.io.InputStream; import java.io.DataInputStream; import java.io.InputStreamReader; import java.io.OutputStream; import java.io.DataOutputStream; import java.io.BufferedReader; import java.net.ServerSocket; import java.net.Socket; import java.io.IOException; import java.util.Date; class Server { public Server() { try { ServerSocket s=new ServerSocket(8888); Socket ss=s.accept(); OutputStream out=ss.getOutputStream(); DataOutputStream dout=new DataOutputStream(out); InputStream in=ss.getInputStream(); DataInputStream din=new DataInputStream(in); System.out.print(din.readUTF()+“!“); dout.writeUTF(“你已经连接到服务器“+“\t“+“你的地址:“+ss.getInetAddress()+“\t“ +“你的链接端口:“+ss.getLocalPort()+“\n“); new ReadMessage(din).start(); new SendMessage(dout).start(); } catch (IOException e) { e.printStackTrace(); } } public static void main(String args) { new Server(); } } //接受客户端信息 class ReadMessage extends Thread { private DataInputStream din; public ReadMessage(DataInputStream din) { this.din=din; } public void run() { String str; try { while (true) { str=din.readUTF(); System.out.println(new Date().toLocaleString()+“客户端说:“+str); if (str.equals(“bye“)) { System.out.println(“客户端下线!“); break; } } } catch (IOException e) { e.printStackTrace(); } } } // 发出服务器信息 class SendMessage extends Thread { private DataOutputStream dout; public SendMessage(DataOutputStream dout) { this.dout=dout; } public void run() { InputStreamReader inr=new InputStreamReader(System.in); BufferedReader buf=new BufferedReader(inr); String str; try { while(true) { str=buf.readLine(); dout.writeUTF(str); if (str.equals(“bye“)) { System.out.println(“服务器退出!“); System.exit(1); } } } catch (IOException e) { e.printStackTrace(); } } } import java.io.InputStream; import java.io.DataInputStream; import java.io.InputStreamReader; import java.io.OutputStream; import java.io.DataOutputStream; import java.io.BufferedReader; import java.net.Socket; import java.io.IOException; import java.util.Date; class Client { public Client() { try { Socket s=new Socket(“192.168.1.2“,8888); InputStream in=s.getInputStream(); DataInputStream din=new DataInputStream(in); OutputStream out=s.getOutputStream(); DataOutputStream dout=new DataOutputStream(out); dout.writeUTF(“服务器你好!我是客户端“); System.out.println(din.readUTF()); new Thread(new SenderMessage(dout)).start(); new Thread(new ReaderMessage(din)).start(); } catch (IOException e) { e.printStackTrace(); } } public static void main(String args) { new Client(); } } class ReaderMessage implements Runnable { private DataInputStream din; public ReaderMessage(DataInputStream din) { this.din=din; } public void run() { String str; try { while(true) { str=din.readUTF(); System.out.println(new Date().toLocaleString()+“服务器说:“+str); if (str.equals(“bye“)) { System.out.println(“服务器已经关闭,此程序自动退出!“); break; } } } catch (IOException e) { e.printStackTrace(); } } } class SenderMessage implements Runnable { private DataOutputStream dout; public SenderMessage(DataOutputStream dout) { this.dout=dout; } public void run() { String str; InputStreamReader inf=new InputStreamReader(System.in); BufferedReader buf=new BufferedReader(inf); try { while (true) { str=buf.readLine(); dout.writeUTF(str); if (str.equals(“bye“)) { System.out.println(“客户端自己退出!“); System.exit(1); } } } catch (IOException e) { e.printStackTrace(); } } }
更多文章:

click15杨策出什么事了(杨策为什么退出click15)
2025年2月21日 13:10

thumbdata(.thumbdata3-1763508120是什么文件)
2025年3月2日 00:20

oracle数据库客户端安装(怎样安装oracle数据库服务器)
2025年2月26日 15:40

delphi 安卓(大家觉得用delphi 开发安卓程序有前途么)
2025年3月15日 07:20

java语言程序设计第四版(自学java编程有什么好的教程吗)
2025年4月2日 15:20

computer science(计算机科学课(computer science)是否应该成为国内中学生的主课之一)
2025年2月17日 20:20

教师法心得体会(教育政策法规与教师职业道德规范的学习心得,500字,谢谢)
2025年3月8日 21:40

原码 反码 补码(计算机的原码,反码,补码是怎么回事可以举例说明吗)
2025年3月7日 08:30

jsp教程pdf(在JSP中怎么实现网页直接浏览PDF和WORD文件)
2025年2月20日 07:40

欢迎页面图片(U盘启动进PE装系统的那个欢迎界面图片怎么改)
2025年3月27日 12:20

filterconfig(请问如何在Filter中获取ServletConfig对象)
2025年2月22日 07:00

奥鹏教师教育网官网(奥鹏远程教育的成绩怎么查询在哪个网站查)
2025年2月11日 14:50