android p2p 连接服务器上,当通过Wi-Fi P2P使用网络服务发现时无法连接到Android设备每个人都可以使用网络服务发现...
! 我正在开发一个Android应用程序,允许与附近已安装此应用程序的设备聊天。为了做到这一点,我使用Wi-Fi P2P API和网络服务发现来搜索附近的设备。 我已经编写了用于在服务启动的线程中搜索附近设备的代码。当检测到设备时,服务将它(通过广播意图)发送到显示到目前为止检测到的设备的活动。 检测到的设备被添加到recyclerView中,并且当用户按下其中一个时,必须建立到该设备的连接。 成功建立Wi-Fi Direct连接(即,WifiP2pManager.connect()方法成功),并捕获WIFI_P2P_CONNECTION_CHANGED_ACTION。 在广播接收机中,当这样的广播意图落入,下面的代码被执行:当通过Wi-Fi P2P使用网络服务发现时无法连接到Android设备每个人都可以使用网络服务发现
NetworkInfo networkInfo = (NetworkInfo) intent.getParcelableExtra(WifiP2pManager.EXTRA_NETWORK_INFO);
if (networkInfo.isConnected()) {
mManager.requestConnectionInfo(mChannel, connectionInfoListener); }
随着requestConnectionInfo()方法我可以获取有关的连接,如装置I的IP地址的信息试图连接到。 为了获取这些信息,我提供了一个WifiP2pManager.ConnectionInfoListener实现,该实现由connectionInfoListener变量表示。 这是我实现WifiP2pManager.ConnectionInfoListener的代码:
“设备”是我实现广播接收器的现在正好是不重要的实例变量。相反,重要的是ConnectThread线程。这是处理在两个设备之间连接套接字所需的代码的线程。当我尝试连接到一个检测装置,ConnectThread在其run()方法,创建ChatConnection路过的IP地址和先前获得这一构造的端口号的新实例:
public ChatConnection(InetAddress srvAddress, int srvPort, String macAddress) throws IOException {
...
connSocket = new Socket(srvAddress, srvPort);
...
}
这里是哪里发生问题。当我测试物理设备上我的应用程序,我得到的是这样的例外:
W/System.err: java.net.ConnectException: failed to connect to /192.168.49.1 (port 6770): connect failed: ECONNREFUSED (Connection refused)
当然,我安装我的第二个物理设备上也应用程序,它被成功地检测和一个Wi-Fi直连连接获得成功建立。但是,当涉及到这行代码:
connSocket = new Socket(srvAddress, srvPort);
即抛出异常...... 我对这个问题的长度道歉,但我想是最清楚的。 我真的很感谢你提供任何帮助。
编辑:我忘了提及初始化ServerSocket的代码。
ServerSocket在Wi-Fi启用后立即启动的线程中进行初始化。
即,当WifiP2pBroadcastReceiver(内部类延伸的BroadcastReceiver应用的服务的)捕获一个WIFI_P2P_STATE_CHANGED_ACTION意图,它会检查是否在Wi-Fi使能,并且如果启用,则启动其中的ServerSocket位于螺纹:
public void onReceive(Context context, Intent intent) {
String action = intent.getAction();
if (action.equals(WifiP2pManager.WIFI_P2P_STATE_CHANGED_ACTION)) {
int statoWiFi = intent.getIntExtra(WifiP2pManager.EXTRA_WIFI_STATE, -1);
if (statoWiFi == WifiP2pManager.WIFI_P2P_STATE_ENABLED) {
mNsdService = new NsdProviderThread();
mNsdService.start();
}
将ServerSocket被初始化在NsdProviderThread的run()方法:
public void run() {
...
try {
server = new ServerSocket(0);
} catch (IOException ex) {
return;
}
...
while (!Thread.currentThread().isInterrupted()) {
Socket clientSocket = null;
try {
clientSocket = server.accept();
} catch (IOException ex) {
break;
}
try {
ChatConnection chatConn = new ChatConnection(clientSocket);
synchronized (connections) {
connections.add(chatConn);
}
} catch (IOException ex) {
continue;
}
}
“服务器” 是NsdProviderThread的一个实例变量声明为ServerSocket的。
2016-11-04
Nilio
+1
你需要一个ServerSocket接受来自其他设备.... –
+0
Socket连接我感谢您的评论。我刚刚编辑了我的问题,并添加了有关ServerSocket的更多信息。 –
android p2p 连接服务器上,当通过Wi-Fi P2P使用网络服务发现时无法连接到Android设备每个人都可以使用网络服务发现...相关推荐
- 客户端(STS)连接服务器上redis时的问题
[问题] 在本地客户端(STS)跑springboot连接服务器上面的redis时,一直报错连不上,服务器上redis已经关闭了protected-mode,防火墙已经关闭 [原因] 服务器redis ...
- vs2008 64位 如何连接64位oracle,vs2008中如何连接服务器上Oracle实例?
vs2008中如何连接服务器上Oracle实例? 本地机器tnsnames.ora ORCL = (DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = f ...
- Xshell远程连接服务器上的jupyter notebook
用Xshell远程连接服务器上的jupyter notebook 今天浅写一下在Xshell远程连接服务器上已有的jupyter notebook,以后更新一下如何在服务器上部署jupyter not ...
- 解决Android Studio连接不上逍遥模拟器的问题
H:\app\Microvirt\MEmu\adb.exe start-serverH:\app\AndroidSDK\platform-tools\adb.exe connect 127.0.0.1 ...
- navicat怎么连接虚拟服务器,navicat怎么连接服务器上的数据库
navicat怎么连接服务器上的数据库 内容精选 换一换 华为云帮助中心,为用户提供产品简介.价格说明.购买指南.用户指南.API参考.最佳实践.常见问题.视频帮助等技术文档,帮助您快速上手使用华为云 ...
- wav文件 服务器失败,.wav存储在服务器上的声音文件在加载web应用程序时无法播放...
这是我试图实现的场景:与Web应用程序存储在同一服务器上的声音,在客户端遇到条件时播放.当我在IDE中运行它并将webconfig更改为指向数据库所在的服务器时,它完美地工作.但是,当我部署并通过浏览 ...
- p2p云服务是什么_p2p云服务器是什么(p2p连接不上服务器是什么问题)
困惑好久了,网上现在好像还没有权威的解释? 是云计算技术 云计算(cloud computing),分布式计算技术的一种,其最基本的概. 再交由多部服务器所组成的庞大系统经搜寻.计算分析之后将处理结果 ...
- 安装 | Android studio连接不上真机解决办法(电脑安装虚拟机不成功的情况下)
博主github:https://github.com/MichaelBeechan 博主CSDN:https://blog.csdn.net/u011344545 **很多人安装Android St ...
- win7连接sftp_SFTP远程连接服务器上传下载文件-vs2013项目实例
本项目仅测试远程连接服务器,支持上传,下载文件,更多功能开发请看API自行开发. 环境:win7系统,vs2013 vs2013项目实例下载地址:CSDN下载 如果没有CSDN积分,百度网盘下载(密码 ...
最新文章
- CSS 工程化 小结
- 卷积神经网络算法的一个实现
- decimal是( )数据类型_SQL 通用数据类型
- Vue+iview实现自定义格式导出Excel文件
- Web常见漏洞修复建议
- 一个500强公司的数据化运营管理实践
- Java基础教程【第二章:Java数据类型和变量】
- 数据结构 枚举学习笔记
- Vue经典开源项目汇总
- OSAL启动过程分析
- 印象笔记中可以使用html语言吗,你知道吗,在印象笔记里也能用 Markdown 写作
- 嵌入式工程师必须知道的一些好网站
- CAD等比例缩放图形
- 4点策略教你如何做好社群营销
- 【信号去噪】基于NLM时间序列心电信号去噪附matlab代码
- 隐私泄露防不胜防,真的没有办法了吗?
- CentOS7.0 搭建zabbix 5.0 实现监控华为交换机运行状态并实现邮件告警
- nmon在linux应用
- 重磅消息:Lazada和Shopee通过中国执照就可以开通本地店铺,享受更多的流量和资源扶持
- C++ Builder ADO数据库连接与保存