这些问题可能听起来很傻,但我对这个网络事物很陌生。我已经尝试了好几天来实现一个与 Twisted 服务器一起工作的客户端,但是我没有从服务器得到任何响应。我已经阅读了很多文档并观看了一些教程,并且我修复了一些内容并更好地理解了一些概念。
在我继续提出任何问题之前,我想先向您展示我的代码。这是我用来与基于 Twisted 的服务器对话的内容:
val socketfactory: SocketFactory = SocketFactory.getDefault()
val socket = socketfactory.createSocket(host, port)
socket.keepAlive = true
socket.tcpNoDelay = true
val isSocketConnected = socket.isConnected //this checks socket's connectivity
val dOut = DataOutputStream(socket.getOutputStream())
val dIn = DataInputStream(socket.getInputStream())
val teststring = "Hi server!"
dOut.writeUTF(teststring)
Log.d("MILESTONE", "MESSAGE SENT AT THIS POINT, Socket is connected ?: $isSocketConnected")
var testreader = ""
while (true) {
testreader = dIn.readUTF()
Log.d("READING:", "RECEIVED THIS: $testreader")
}
我的代码似乎永远不会到达第二个“Log”行。它永远不会到达那里。我认为那是因为我从未从服务器获得任何输入。这让我很困惑。因为“socket.isConnected”返回 true。这是否意味着客户端(我)和服务器之间存在持续的连接?但是当我发送任何输出时,服务器不会回话。
所以我的问题是: 1-我做错了吗?为什么我没有收到来自服务器的对话并且它阻止了代码?2- SocketFactory 是否必要?3-是否有任何库可以通过 Java 与 Twisted 通信?
提前致谢 !