交友APP源码 IM带音视频源码Uniapp 即时通讯安卓苹果APP源码
前端开发语言:VUE( 安卓,IOS,WEB为一套前端代码)
服务器端开发语言: PHP+WebSocket
数据库:MySql + mongodb
前端打包工具:Hbuilder
服务器搭建工具:宝塔 + Xshell
短信接口: 支持阿里云
支付接口:支持支付宝
服务器配置: 4核8G宽带10兆以上
服务器系统:Linux Centos 7.6 64位
基本功能说明:
1.发消息:语音、图片、视频、文字、表情、表情包、文件、名片等。
2.聊天:单聊、群聊。
3.自定义消息:发红包、转账。
4.聊天记录:清空聊天记录、群管理、加群二维码控制是否可加。
5.自定义添加链接。
6.我的钱包:后台可以充值、用户充值、提现等。
7.创建群:可任意创建群,群成员数量不受限制,好友数量不受限。
8.群功能:设置群二维码、群公告、群共享文件、顶置聊天、消息免打扰,屏蔽群信息、禁言、举报、群管理、查找聊天记录、禁止全员相互加好友、清空聊天记录等。
9.好友聊天:文字、语音、音视频通话、收藏、照片、小视频、各种表情、传送文件、发送位置、引用回复、撤回、复制、删除、收藏、撤回、录制、多选、发红包,转账等。
10.生活圈动态:可以发送图文、语音、视频、可点赞,评论、举报等。
11.会员登录:注册登录、短信登录。
12.账号设置:修改密码、语言切换、字体设置、隐私设置、安全设置、一键群发好友消息等。
13.用户管理:登录时间、登陆IP、更换头像、更换名称、设置密码、批量生成用户。
14.后台功能: 管理员列表、系统设置、用户管理、群组管理、通讯录管理、财务管理、会话管理、自定义网站、手机通讯录
了解更多源码内容,您可以私信我!
如果您也喜欢这篇文章,记得点赞+关注+评论+转发哟![比心][比心][比心]
很久以前做的了,启动程序两次,在单选框中选服务器点连接(一定要先点服务器-连接),在在另外一个界面中选客户端点连接;
import java.awt.Color
import java.awt.Container
import java.awt.Font
import java.awt.event.ActionEvent
import java.awt.event.ActionListener
import java.io.BufferedReader
import java.io.InputStreamReader
import java.io.PrintWriter
import java.net.InetAddress
import java.net.ServerSocket
import java.net.Socket
import java.util.Date
import javax.swing.ButtonGroup
import javax.swing.JButton
import javax.swing.JFrame
import javax.swing.JLabel
import javax.swing.JRadioButton
import javax.swing.JTextArea
import javax.swing.JTextField
public class QQ extends JFrame implements ActionListener{
public static void main(String args[]){
QQ qq=new QQ()
}
String input
ServerSocket ss
Socket s1,s2
PrintWriter pw
BufferedReader br
private server s
private client cc
private JLabel l1,l2,l3,l4,l5
private JRadioButton jb[]=new JRadioButton[2]
private JTextField jf1,jf2,jf3
private JButton j1,j2,j3
private JTextArea ja
public QQ(){
super("聊天")
Container c=getContentPane()
c.setLayout(null)
l1=new JLabel("TCP通信程序")
l1.setFont(new Font("宋体",Font.BOLD,16))
l1.setBackground(Color.black)
l1.setSize(2000,20)
l1.setLocation(10,10)
c.add(l1)
String str1[]={"服务端","客户端"}
ButtonGroup bg=new ButtonGroup()
for(int x=0x<str1.lengthx++)
{
jb[x]=new JRadioButton(str1[x])
jb[x].setFont(new Font("宋体",Font.BOLD,15))
jb[x].setForeground(Color.black)
jb[x].setSize(80,40)
jb[x].setLocation(10+x*80,37)
bg.add(jb[x])
c.add(jb[x])
}
jb[0].setSelected(true)
l2=new JLabel("连接主机IP")
l2.setFont(new Font("宋体",Font.BOLD,16))
l2.setBackground(Color.black)
l2.setSize(120,20)
l2.setLocation(20, 80)
c.add(l2)
jf1=new JTextField("127.0.0.1")
jf1.setSize(220,30)
jf1.setLocation(120, 80)
c.add(jf1)
jf3=new JTextField("离线")
jf3.setSize(150,30)
jf3.setLocation(280, 40)
c.add(jf3)
l5=new JLabel("连接状态:")
l5.setFont(new Font("宋体",Font.BOLD,16))
l5.setBackground(Color.black)
l5.setSize(120,20)
l5.setLocation(200, 47)
c.add(l5)
j1=new JButton("连接")
j1.setSize(110,20)
j1.setLocation(360,85)
j1.addActionListener(this)
c.add(j1)
l3=new JLabel("接收到的信息")
l3.setFont(new Font("宋体",Font.BOLD,16))
l3.setBackground(Color.black)
l3.setSize(120,20)
l3.setLocation(20, 130)
c.add(l3)
ja=new JTextArea()
ja.setSize(250,200)
ja.setLocation(130, 130)
c.add(ja)
l4=new JLabel("发送信息")
l4.setFont(new Font("宋体",Font.BOLD,16))
l4.setBackground(Color.black)
l4.setSize(120,20)
l4.setLocation(20, 340)
c.add(l4)
jf2=new JTextField("gf")
jf2.setSize(220,30)
jf2.setLocation(120, 340)
c.add(jf2)
j2=new JButton("发送信息")
j2.setSize(110,20)
j2.setLocation(360,350)
j2.addActionListener(this)
c.add(j2)
j3=new JButton("结束连接")
j3.setSize(110,20)
j3.setLocation(360,110)
j3.addActionListener(this)
c.add(j3)
s=new server()
cc=new client()
j3.setEnabled(false)
j2.setEnabled(false)
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE)
setSize(500,450)
setVisible(true)
setLocation(300,300)
}
public void actionPerformed(ActionEvent e) {
// TODO 自动生成方法存根
if(e.getSource()==j1)
{
try{
if(jb[0].isSelected()==true)
{
input=""
s.start()
}
else {
input=""
cc.start()
}
}
catch(Exception ee)
{
jf3.setText("发生错误")
}
}
if(e.getSource()==j2)
{
pw.write(jf2.getText()+"\n")
pw.flush()
}
if(e.getSource()==j3)
{
try
{
if(jb[0].isSelected()==true)
{ s1.close()
jf3.setText("离线")
j2.setEnabled(false)
j3.setEnabled(false)
}
else
{
s2.close()
jf3.setText("离线")
j2.setEnabled(false)
j3.setEnabled(false)
}
}
catch (Exception e1) {
// TODO 自动生成 catch 块
}
}
}
class server extends Thread{
public void run(){
try {
j1.setEnabled(false)
jf3.setText("正在连接中@")
ss=new ServerSocket(4000)
s1=ss.accept()
br=new BufferedReader(new InputStreamReader(s1.getInputStream()))
pw=new PrintWriter(s1.getOutputStream(),true)
// bs=new BufferedOutputStream(os)
while(true){
if(ss.isBound()==true){
jf3.setText("连接成功")
j2.setEnabled(true)
j3.setEnabled(true)
break
}
}
while(true)
{
input=br.readLine()
if(input.length()>0){
ja.append(input)
ja.append("\n")
}
}
} catch (Exception e) {
// TODO 自动生成 catch 块
}
}
}
class client extends Thread{
public void run(){
try {
j1.setEnabled(false)
jf3.setText("正在连接中@")
s2=new Socket(InetAddress.getByName(jf1.getText()),4000)
// s2=new Socket()
// s2.connect(new InetSocketAddress(jf1.getText(),21),1000)
br=new BufferedReader(new InputStreamReader(s2.getInputStream()))
pw=new PrintWriter(s2.getOutputStream(),true)
// bs=new BufferedOutputStream(os)
while(true){
if(s2.isConnected()==true){
jf3.setText("连接成功")
j2.setEnabled(true)
j3.setEnabled(true)
break
}
}
input=""
while(true){
input=br.readLine()
if(input.length()>0)
{
ja.append(input)
}
}
} catch (Exception e) {
// TODO 自动生成 catch 块
}
}
}
}
目前市面上有很多开源的即时通讯框架,但是需要一定的开发能力才能整合到业务中去。我推荐你可以找专业的第三方服务商,比如即构科技,他们家的即时通讯做得还不错,可提供即时通讯示例源码,开发者通过IM SDK和API可快速开发IM功能,比自主开发节省90%时间和成本,有需要的可以去他们的官网看看。欢迎分享,转载请注明来源:夏雨云
评论列表(0条)