我的基于java的应用程序安装在许多用户的计算机上。在第一次运行时,它会自动将用户的操作系统名称发送到我的服务器并存储在数据库中。我使用System.getProperty("os.name");在该应用程序中获取用户的操作系统名称。能否确定这是一台基于服务器的计算机( Windows Server 2012 Standard)还是台式计算机(Ubuntu、Windows 7)?
是否有任何可能的方法来确定使用Java的服务器和台式计算机之间的关系?
编辑:弄乱了我的accept调用的伪代码,它现在反映了我实际在做什么。
我有两个插座在工作。我尝试在两者之间使用send/recv。当侦听套接字阻塞时,它可以看到连接并接收它。当它是非阻塞的时候,我设置了一个繁忙的等待(只是为了调试它),然后它就超时了,总是出现错误EWOULDBLOCK。为什么侦听套接字看不到阻塞时可以看到的连接?
代码大部分是在函数中分开的,但这里有一些我正在做的伪代码。
int listener = -2;
int connector = -2;
int acceptedSocket = -2;
getaddrinfo(port 27015, AI_PASSIVE) r