急求一个关于UDP的JAVA实现多人聊天源代码

急求一个关于UDP的JAVA实现多人聊天源代码,第1张

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()

}

}

}

服务器的具体用途如下:

1)留言服务器:主要用于留言推送,到用户推送室聊天留言,私人留言。

2)业务服务器:手机直播业务部分,朋友关系,直播管理,货币系统,礼品系统等。

3)视频服务器:视频直播、视频点播、转码、存储、视频点播等。

4)我的即时聊天:使用node.js服务来建立自己的部署聊天服务器。

5)视频流(流媒体服务器):建议使用第三方CDN打开要使用的账户。

PowerTalkBox,现在我们公司就用这个,用ASP.NET实现的,源码开放,方便第二次开放,支持单聊,多聊,群聊。你想看看效果可以去http://www.51aspx.com/CV/PowerTalkBox

这个我用的是QQ客服,链接到QQ的,像现在QQ那么普及。。

源码那里是链接到自己站内的聊天室的,不用安插件什么的,还提供表情和聊天记录的保存


欢迎分享,转载请注明来源:夏雨云

原文地址:https://www.xiayuyun.com/zonghe/265339.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-04-17
下一篇2023-04-17

发表评论

登录后才能评论

评论列表(0条)

    保存