把安卓手机变成服务器

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

之后,使用FileInputStreamFileOutputStream 共享文件。

【讨论】:

想到了,不过据我了解,WIFI直连的文件传输速度更快。这在传输 MP3 等较重的文件时会变得很重要。 如果您使用 Wifi Hotspot 而不是连接外部路由器,您将获得 Wifi Direct 的速度。 抱歉,我是网络编程新手。不明白你的意思。我假设套接字直接使用端口和服务器 IP 连接。热点或路由器如何影响它? 嘿,不确定你是否还在。但从进一步的研究。我的想法是在设备上启动热点,连接电脑,然后使用电话连接中的 IP 地址作为我的套接字连接以获得所需的速度吗? 是的,你是对的。同样关于前面的问题,大多数路由器都比热点慢,因为路由器需要同时处理上游到目的地和下游的源,而当使用热点时,一个设备将处理上游,而另一个设备将只处理下游。检查这个非常简单的代码,用于在两个 android 设备之间共享消息:github.com/nabinbhandari/android-socket-messaging

以上是关于把安卓手机变成服务器的主要内容,如果未能解决你的问题,请参考以下文章

苹果通讯录导出vcard格式再导入安卓手机变成乱码

安卓文件格式?

安卓手机怎样才可以运行exe后缀文件?

安卓手机设置壁纸为啥不清晰

安卓手机怎么把时间设置成24小时

怎样把安卓系统升级到7.0