把安卓手机变成服务器
Posted
技术标签:
【中文标题】把安卓手机变成服务器【英文标题】:Turning Android Phone Into A Server 【发布时间】:2018-03-08 02:31:08 【问题描述】:我正在构建一个 android 应用程序,它将手机变成服务器,允许在手机和具有 WIFI 速度的计算机之间轻松传输文件。 WIFI 直连是使用 createGroup() 的更简单途径。但是,我似乎无法控制 WIFI 的名称,因为它显示在计算机上,并且它也会自行生成密码。如何更改 WIFI 名称以及删除或重置密码? OnePlus 使用 FileDash 做类似的事情。
【问题讨论】:
【参考方案1】:Wifi Direct 并不是更简单的方法。去ServerSocket
。即使您连接到 wifi 和同一网络中的其他设备将能够使用 Socket
连接到您的设备,它也会帮助您提供服务。
它也适用于 Java 桌面应用程序。
服务器端:
ServerSocket serverSocket = new ServerSocket(4576); // or any port
Socket socket = serverSocket.accept();
客户端:
Socket socket = new Socket(IP_OF_SERVER, 4576);
之后,使用FileInputStream
和FileOutputStream
共享文件。
【讨论】:
想到了,不过据我了解,WIFI直连的文件传输速度更快。这在传输 MP3 等较重的文件时会变得很重要。 如果您使用 Wifi Hotspot 而不是连接外部路由器,您将获得 Wifi Direct 的速度。 抱歉,我是网络编程新手。不明白你的意思。我假设套接字直接使用端口和服务器 IP 连接。热点或路由器如何影响它? 嘿,不确定你是否还在。但从进一步的研究。我的想法是在设备上启动热点,连接电脑,然后使用电话连接中的 IP 地址作为我的套接字连接以获得所需的速度吗? 是的,你是对的。同样关于前面的问题,大多数路由器都比热点慢,因为路由器需要同时处理上游到目的地和下游的源,而当使用热点时,一个设备将处理上游,而另一个设备将只处理下游。检查这个非常简单的代码,用于在两个 android 设备之间共享消息:github.com/nabinbhandari/android-socket-messaging以上是关于把安卓手机变成服务器的主要内容,如果未能解决你的问题,请参考以下文章