Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/swift/17.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
C++ 带有Swift和C++;_C++_Swift_Sockets_Client Server_Nsstream - Fatal编程技术网

C++ 带有Swift和C++;

C++ 带有Swift和C++;,c++,swift,sockets,client-server,nsstream,C++,Swift,Sockets,Client Server,Nsstream,我试图创建一个简单的应用程序,用于在客户端(Swift、iOS)和服务器(C++、Windows)之间传输数据。我想使用套接字传输数据。所以我有相当多的工作服务器(我可以连接它,使用C++客户端),但是当我尝试用SWIFT的NSFREST连接到它时,我得到了错误。也许我错过了什么?在Windows和iS.< /P> C++服务器之间使用Socket连接的规则是什么? 所以过了一段时间,我在我的客户身上收到了“出错”的信息。 以下是我连接NSStream的代码: let SERVER_IP: St

我试图创建一个简单的应用程序,用于在客户端(Swift、iOS)和服务器(C++、Windows)之间传输数据。我想使用套接字传输数据。所以我有相当多的工作服务器(我可以连接它,使用C++客户端),但是当我尝试用SWIFT的NSFREST连接到它时,我得到了错误。也许我错过了什么?在Windows和iS.< /P> C++服务器之间使用Socket连接的规则是什么? 所以过了一段时间,我在我的客户身上收到了“出错”的信息。 以下是我连接NSStream的代码:

let SERVER_IP: String = "MY_SERVER_IP"
let SERVER_PORT: Int = MY_PORT

class ViewController: UIViewController, NSStreamDelegate {
    var inputStream: NSInputStream? = nil
    var outputStream: NSOutputStream? = nil

    override func viewDidLoad() {
        super.viewDidLoad()

        NSStream.getStreamsToHostWithName(SERVER_IP, port: SERVER_PORT, inputStream: &inputStream, outputStream: &outputStream)

        if inputStream != nil && outputStream != nil {
            inputStream!.delegate = self
            outputStream!.delegate = self

            inputStream!.scheduleInRunLoop(.mainRunLoop(), forMode: NSDefaultRunLoopMode)
            outputStream!.scheduleInRunLoop(.mainRunLoop(), forMode: NSDefaultRunLoopMode)

            inputStream!.open()
            outputStream!.open()
        }

     }


    func stream(aStream: NSStream, handleEvent eventCode: NSStreamEvent) {
        switch (eventCode){
        case NSStreamEvent.ErrorOccurred:
            NSLog("ErrorOccurred")
            break

        case NSStreamEvent.EndEncountered:
           NSLog("EndEncountered")
           break

        case NSStreamEvent.None:
           NSLog("None")
           break

        case NSStreamEvent.HasBytesAvailable:
            NSLog("HasBytesAvaible")
            var buffer = [UInt8](count: 4096, repeatedValue: 0)
            if ( aStream == inputStream) {
                while (inputStream!.hasBytesAvailable){
                    var len = inputStream!.read(&buffer, maxLength: buffer.count)
                    if(len > 0){
                        var output = NSString(bytes: &buffer, length: buffer.count, encoding: NSUTF8StringEncoding)
                        if (output != ""){
                            NSLog("server said: %@", output!)
                        }
                    }
                }
            }
            break

        case NSStreamEvent.allZeros:
            NSLog("allZeros")
            break

        case NSStreamEvent.OpenCompleted:
            NSLog("OpenCompleted")
            break

        case NSStreamEvent.HasSpaceAvailable:
            NSLog("HasSpaceAvailable")
            break
        default:
            break
      }



    } 

 }

看来,问题出在服务器端。这段代码工作得很好。我的错:)

看来,问题出在服务器端。这段代码工作得很好。我的错:)