安卓编程实现wifi聊天,视频和音频通话

安卓编程实现wifi聊天,视频和音频通话

安卓编程实现wifi聊天,传文件,视频和音频通话

在移动开发的过程中,即时通讯是许多app必须要用到的功能,许多app都没有自主开发自己的聊天系统,反而引用了第三方的即时通讯sdk,贵还不说,有时候想自己增加功能也是麻烦,本文通过安卓编程为例,使用wifi作为服务器,实现了安卓即时通讯和视频音频的通话功能。

安卓开启热点服务

安卓系统自带的热点服务,本次编程将热点开启作为局域网的聊天服务器,一台手机作为主服务器搭建聊天服务。
热点创建服务代码如下
public void createServer(){

	try {

// System.out.println(“本机ip:”+getLocalIpAddress());
ServerSocket ss = new ServerSocket(30000);
while (true) {

			String localip= getHostIP();
			System.out.println("本机ip:"+localip);

			Socket s = ss.accept(); 
			System.out.println("已连接ip:"+s.getInetAddress().toString());
			vibrators();

// showNot(“已连接ip:”+s.getInetAddress().toString());
simpleNotice(“已连接ip:”+s.getInetAddress().toString());
socketList.add(s);
new Thread(new ServerThead(s,handler)).start();

			Intent intent = new Intent();
			intent.setAction("www.ailiaw.com

热门文章

暂无图片
编程学习 ·

Linux 文件系统解析(三)cache

Linux文件系统中使用了大量cache,用于提升IO性能,本篇来梳理一下这些与文件系统相关的cache,它们在内存中是如何组织管理的,它们是如何加速文件系统操作的。Dentry Cachedentry用于描述系统目录树中的一个节点,磁盘文件系统中通常没有相关结构,dentry只存在于内存之中,它…
暂无图片
编程学习 ·

LeetCode题解(0744):寻找比目标字母大的最小字母(Python)

题目:原题链接(简单)解法 时间复杂度 空间复杂度 执行用时Ans 1 (Python) O(logN)O(logN)O(logN) O(1)O(1)O(1) 136ms (69.15%)Ans 2 (Python) O(logN)O(logN)O(logN) O(1)O(1)O(1) 136ms (69.15%)Ans 3 (Python)LeetCode的Python执行用时随缘,只要时间复杂度没有明显差异,…
暂无图片
编程学习 ·

JDBC

JDBC(Java DataBase Connectivity) JDBC 简介 Java 数据库连接技术。即用 Java 程序操作数据库的一套接口。是独立与 特定数据库(MySQL、SQLServer) 的管理系统,也就是无论使用的是什么类型的数据库都可以用 JDBC 去连接。 让 JDBC 去翻译底层数据库的各种指令,我们只需要使…
暂无图片
编程学习 ·

2-Openwrt ipv6之-pppoev6客户端

pppoe拨号方式上网,ubunut服务器需要有pppoe-server也要有dhcpv6-server,路由器端需要ppp-client,也要odhcp6c指向pppoe-wan端口。1. PPPOEv6客户端启动过程pppoe拨号为wan上面的另一种方式,所以需要将uci里面的上网模式proto 改成pppoe config interface wanoption ipv6 1…
暂无图片
编程学习 ·

Unity学习(C#)——正则表达式

正则表达式:专门用于字符串处理的语言。 可以 解决: 1.检索:获取我们想要的部分 2.匹配:判断给定字符串是否符合正则表达式的过滤逻辑。即表述了字符串书写的规则。 定位元字符 $、^ (要用using System.Text.RegularExpressions;) $在结尾处插入 ^在开头处插入string s =…
暂无图片
编程学习 ·

SpringBoot问题集锦

问题一: SpringBoot应用部署在外置Tomcat中没有启动,无任何反应 解决办法:启动类继承SpringBootServletInitializer并实现configure方法;@SpringBootApplication public class PaysApplication extends SpringBootServletInitializer {@Overrideprotected SpringApplicatio…
暂无图片
编程学习 ·

IntelliJ IDEA中使用markdown画流程图

安装 Scene Builder下载安装:https://gluonhq.com/products/scene-builder/ 中 Download Scene Builder for Java 8IntelliJ IDEA -> Preferences -> Languages and Frameworks -> JavaFX 中的 "Path to SceneBuilder" 设置为 "/Applications/SceneBu…
暂无图片
编程学习 ·

Matlab class文件 简单上手使用

1.简单的书写规范 一般通过软件(拓展)新建功能,可以选择新建一个脚本、函数或者是类。当然文件中以类的形式书写代码,保存后matlab将自动识别该文件为类。 当使用软件新建类后,新建的文件中包含了类文件的基础格式(我使用的软件是MATLAB R2014b): classdef Untitled3%U…
暂无图片
编程学习 ·

JavaScript-从入门到入土(五)

BOM BOM(Browser Object Model): 浏览器对象模型,是用来描述与浏览器进行交互的方法和接口 BOM下面有一个核心的对象 – window对象。 window下面的常用的事件操作: onload() 页面内容加载完成后执行这里的代码 onscroll() 浏览器的滚动条触发时触发此事件 onresize(…
暂无图片
编程学习 ·

解决 java “错误:编码GBK 的不可映射字符”

今天一个学弟遇到这样的问题,如下图所示。 看到这样的问题,我的思考是: 1.首先是使用javac -version查看环境变量是否正确 2.然后查看编译路径是否存在中文 3.查看代码本身是否有中英文符号混淆 4.右击dos窗口,查看其属性中的编码集是否是utf-8 代码本身没问题,可以在exli…
暂无图片
编程学习 ·

创新实践记录一

使用UGUI制作开始界面 一、UGUI概述 1.1常用组件 UGUI是从Unity4.6开始被集成到Unity编译器中的官方UI系统,具有灵活,快速和可视化兼容性好的特点。以下为常用的UGUI控件:1.2创建UGUI控件 创建UI控件时,如果没有Canvas和EventSystem系统会自动创建。Canvas画布,是所有UI控…
暂无图片
编程学习 ·

eslint代码规范配置

要求或禁止使用分号代替 ASI (semi) 命令行中的 --fix 选项可以自动修复一些该规则报告的问题。 该规则强制使用一致的分号。 semi: [“error”, “always”]; 复制代码 等级 : “error” 选项 “always”: (默认) 要求在语句末尾使用分号 默认选项 “always” 的 错误 代码示例…
暂无图片
编程学习 ·

Java网络编程

端口号范围:0~65535,建议选择1024以上 UDP:面向无连接,数据不安全,速度快,不区分客户端和服务器(有发送端和接收端)(发短信) TCP:面向连接(三次握手),数据安全,速度略低,分为客户端和服务器(打电话) 1.UDP package day26;import java.io.IOException; import…
暂无图片
编程学习 ·

面试之一句话简述volatile

volatile是轻量级的synchronized,他保证了可见性,底层的关键主要是LOCK指令,该指令有两个作用,一是强制把处理器缓存写回内存,二是一旦处理器缓存写回了内存,就让其他处理器上相同的缓存失效,这样的话,其他处理器想要修改某个被写回内存的变量,就得重新去内存取值,而…
暂无图片
编程学习 ·

算法笔记:字符串哈希初步

问题描述: 给出N个字符串,每个字符串由三位大写字母组成,再给出M个查询字符串,问每个查询字符串在N个字符串中出现的次数? 解题思路: 把字符串转化为整数,利用空间来换时间效率。 C/C++代码: #include<cstdio> #include<cstring> const int maxn=100; char…
暂无图片
编程学习 ·

我的世界基岩版BDS服务器搭建与使用

前期需要软件远程SSH控制台软件(本教程使用 Remote Terminal 此为win10商店软件)[点我下载(此软件为Xshell)] 支持Sftp的FTP软件(本教程使用 FileZilla)[点我下载] 服务端(本教程使用 官方bds服务端) Centos或Ubuntu主机一台 (教程使用 centos7.7)注意事项极力推荐Ubun…
暂无图片
编程学习 ·

自学笔记

JAVA自学笔记——? ##类与对象 一、类 1、概念:具有相同属性和行为的一组对象 2、类的定义: 【修饰符】 class 类名{ 成员变量 类的方法 } 修饰符:※ default:默认模式,即无需添加任何修饰符,修饰的方法或类,只能在同一个包内访问private修饰的方法、变量、构造方法只能…
暂无图片
编程学习 ·

利用python爬虫爬取斗鱼图片(简单详细)

关于 在一个安静的夜晚,我缓慢的打开了电脑,望着已经睡着的父母,我轻轻的把门关上,看着斗鱼颜值主播的魅力,我不尽感叹,要是每天都可以不需要那么麻烦的去看那该有多好! 于是我想起了最近刚学的爬虫,嘴角露出了迷之微笑。 开始 我原本以为我这样的菜鸟,如果想爬的话应该…
暂无图片
编程学习 ·

1017 在银行排队 (25分)(优先队列,新手也能看得懂)

优先队列保存窗口时间,每次选出最小时间处理讲解算法思路代码部分pat运行结果复杂度分析 讲解设置一个将题干hh:mm:ss时间转化为秒为单位的时间的函数 利用一个优先队列(这里是一个小根堆,每次top为时间最小的元素)保存每个窗口的当前时间 将每个人的个人信息用struct保存,…