我正在尝试在我的Java应用程序和相对(正在进行中的)iOS应用程序之间建立通信.打开套接字后,iOS应用程序(客户端)将"握手"字符串写入流,然后等待读取流(我认为).当代Java应用程序(服务器,在iOS应用程序之前启动)成功打开套接字并等待BufferedReader读取"握手",此时两个应用程序都被阻止.我不明白它是怎么可能的?
按照iOS代码的一部分:
public class Client: NSObject, NSStreamDelegate {
var serverAddress: CFString
let serverPort: UInt32 = 50000
private var inputStream: NSInputStream!
private var outputStream: NSOutputStream!
private var connecting:Bool
init(ip:String) {
serverAddress = ip
connecting = false
super.init()
connect()
}
func connect() {
connecting = true
while connecting {
print("connecting...")
var readStream: Unmanaged<CFReadStream>?
var writeStream: Unmanaged<CFWriteStream>?
CFStreamCreatePairWithSocketToHost(nil, self.serverAddress, self.serverPort, &readStream, &writeStream)
// Documentation suggests readStream and writeStream can be assumed to
// be non-nil. If you believe otherwise, you can test if …Run Code Online (Sandbox Code Playgroud)