Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/207.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在JAVA中设置主机名?_Java_Android - Fatal编程技术网

如何在JAVA中设置主机名?

如何在JAVA中设置主机名?,java,android,Java,Android,我正在尝试在本地网络上制作一个点对点聊天应用程序。我需要在列表中找到并列出在线用户的姓名 我们都知道,函数getHostName()从INetAddress返回主机名(DNS名)。在Windows中,它返回PC名称。但是在linuxPC和android手机中,它返回IP地址或随机的字母数字非用户友好字符串,如android-xxxxxxxxx(希望您理解)。我的问题是,我们如何设置默认主机名,以便getHostName()函数返回我们通过应用程序设置的用户友好名称?我认为您的客户机只需共享本地网

我正在尝试在本地网络上制作一个点对点聊天应用程序。我需要在列表中找到并列出在线用户的姓名


我们都知道,函数
getHostName()
从INetAddress返回主机名(DNS名)。在Windows中,它返回PC名称。但是在linuxPC和android手机中,它返回IP地址或随机的字母数字非用户友好字符串,如android-xxxxxxxxx(希望您理解)。我的问题是,我们如何设置默认主机名,以便
getHostName()
函数返回我们通过应用程序设置的用户友好名称?

我认为您的客户机只需共享本地网络,与windows一样,还有
arp-a
命令(答案中有更多相关内容),我很确定有一个与android相当的命令。它列出了局域网上的所有IP地址,因此您只需连接到每个IP地址,并询问用户定义的名称。如果客户端未应答或端口未打开,则表示他们处于脱机状态。

设置主机名是一项管理任务-普通用户(和应用程序)无权执行此操作

正如您所看到的,Android将主机名设置为随机值——这主要是为了网络兼容性,其中需要主机名,但该值并非真正用于人类消费

我不知道你为什么需要主机名。您似乎正在使用它作为主机标识符—仅要求用户键入一个可用于标识目的的合理名称不是更容易吗。此外,如果每个应用都决定尝试设置设备的主机名,您认为会发生什么


您关于由于DHCP而不使用IP地址的评论毫无意义。通过IP识别设备并简单地将其映射到用户选择的标识符的共享列表似乎要容易得多,而不是尝试使用和解析主机名。

您要解决的问题是什么,需要更改计算机的主机名?我正在尝试在本地网络上制作聊天应用程序。我需要在列表中找到并列出在线用户的姓名@JoniYou也许可以试试谷歌搜索。第一个结果:第二个:第三个:第四个:@Nabin您可以列出网络上的每个设备,并向每个客户端(我猜是通过某种形式的TCP/IP连接)请求一个用户集名称,然后向用户显示replies@19greg96我在上一次迭代中完成了这两个步骤。但我认为共享IP地址是不切实际的,因为在现代路由器中设置了DHCP。谢谢,我会尝试一下。