ios - 在 Swift 中通过 TCP 发送消息

标签 ios iphone swift tcp client-server

我正在使用带有以下代码的 swift 套接字库:

let client:TCPClient = TCPClient(addr: "127.0.0.1", port: 8080)
var (success,errmsg)=client.connect(timeout: 1)
if success{
    var (success,errmsg)=client.send(str:"|~\0" )
    if success{
        let data=client.read(1024*10)
        if let d=data{
            if let str=String(bytes: d, encoding: NSUTF8StringEncoding){
                print(str)
            }
        }
    }else{
        print(errmsg)
    }
}else{
    print(errmsg)
}

代码工作得很好,但我的问题是,只有当模拟器不在真正的 iPhone(我的 iPhone)上,而仅在他们的模拟器上时,连接才能成功。 我不知道如何解决它以及问题是什么。 当我打印 errmsg 时,它显示:“连接超时”。

最佳答案

您可以尝试将您的主机IP设置为您计算机的IP吗?

let client:TCPClient = TCPClient(addr: "your computer ip", port: 8080)

我想它可以在模拟器上工作,因为模拟器与您的真实计算机共享网络,因此如果从外部(例如您的手机)连接,我认为您应该尝试将 localhost ip 替换为运行服务器的计算机的 ip 。

还有一点是,您的服务器可能是本地服务器,因此请确保它和手机连接在同一网络中。

关于ios - 在 Swift 中通过 TCP 发送消息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36883352/

相关文章:

ios - 在模拟器上运行时为"No installed provisioning profiles match the installed iOS signing identities."

ios - 为什么这段代码不允许我在我的 tableViewCell 中放置一个复选标记配件?

swift - 如何使用 PFQuery getObjectWithId?

ios - 自定义UITableViewCell是否需要使用reuseIdentifier注册?

iphone - 使用非零原点初始化 UIImageView 的更好方法

ios - 使用 popToRootViewController 传递数据

iphone - 无法使标签接收字符串

iphone - UITableView 代表的父类(super class)?

ios - iOS app 的截图方法是什么?

json - 如何用Alamofire+ObjectMapper映射JSON响应的多维数组?