首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >GCDAsyncSocket不会抛出错误

GCDAsyncSocket不会抛出错误
EN

Stack Overflow用户
提问于 2016-02-07 09:04:57
回答 1查看 732关注 0票数 0

我在上编写简单的Telnet客户端。我连接到localhost上的9052端口,并发送三个简单的命令。这是我的密码:

代码语言:javascript
复制
import Cocoa
import CocoaAsyncSocket

@NSApplicationMain
class AppDelegate: NSObject, NSApplicationDelegate {

    var socket : GCDAsyncSocket!

    func applicationDidFinishLaunching(aNotification: NSNotification) {
        requestIdentity()
    }

    func requestIdentity() -> Bool {

        socket = GCDAsyncSocket(delegate: self, delegateQueue: dispatch_get_main_queue())
        let port : UInt16 = 9052
        do {
            try socket.connectToHost("127.0.0.1", onPort: port, withTimeout: 2.0)
        } catch let e {
            print("Error \(e) accured while connecting to \(port) on 127.0.0.1")
            return false
        }
        print("connection working")

        return true
    }

    func applicationWillTerminate(aNotification: NSNotification) {

    }

    func socket(socket : GCDAsyncSocket, didReadData data : NSData, withTag : UInt16) {
        let response = String(data: data, encoding: NSUTF8StringEncoding)
        print("Got response : \(response)")
    }

    func socket(socket : GCDAsyncSocket, didConnectToHost host : String, port  p: UInt16) {
        print("Connected to host \(host) on port \(p)")
        var request = "AUTHENTICATE \"1728390\"\n"
        var data = request.dataUsingEncoding(NSUTF8StringEncoding)
        socket.writeData(data, withTimeout: -1.0, tag: 0)
        socket.readDataWithTimeout(-1.0, tag: 0)
        request = "SIGNAL NEWNYM\n"
        data = request.dataUsingEncoding(NSUTF8StringEncoding)
        socket.writeData(data, withTimeout: -1.0, tag: 0)
        socket.readDataWithTimeout(-1.0, tag: 0)
        request = "QUIT\n"
        data = request.dataUsingEncoding(NSUTF8StringEncoding)
        socket.writeData(data, withTimeout: -1.0, tag: 0)
    }


}

我有意关闭端口9052,但套接字总是“连接”-它不会抛出任何错误,也不会提供任何输出-它只是什么都不做。怎么解决这个问题?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-02-07 15:27:36

找到解决方案:当连接超时时,

代码语言:javascript
复制
func socketDidDisconnect(sock: GCDAsyncSocket!, withError err: NSError!)

被称为。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/35251603

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档