在“接受”连接之前,有没有办法在服务器端获取客户端名称?使用java。
我是java新手。
提前感谢..
答案 0 :(得分:0)
在“接受”连接之前,有没有办法在服务器端获取客户端名称?
不 - 您必须先接受连接。然后您可以阅读主持人的姓名并选择下一步行动。
Socket client = server.accept();
String hostName = client.getInetAddress().getHostName();
答案 1 :(得分:0)
客户端名称(客户端主机名)只能从Socket客户端获得,因此您需要先接受它,然后再做出相应的反应。
private static final String ALLOWED_NAME = "my.hostname.com";
....
Socket client = server.accept();
String hostName = client.getInetAddress().getCanonicalHostName();
if(hostName.equalsIgnoreCase(ALLOWED_NAME)
{
// DO NOTHING
}
else
{
client.close();
}
参考:
请务必区分getCanonicalHostname()和getHostname()。