所以我试图通过简单的Almofire网络调用连接到我在python(noob)中编写的服务器端。
python代码是这样的:
import socket
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
s.bind((socket.gethostname(), 1234))
s.listen(5)
while True:
# now our endpoint knows about the OTHER endpoint.
clientsocket, address = s.accept()
print(f"Connection from {address} has been established.")
迅捷是这样的:
func preformCall( success: @escaping () -> Void, failure: @escaping () -> Void) {
let url = "http://{my ip}:1234/"
Alamofire.request(url, method: .get).responseJSON { (response) in
if response.result.isFailure {
failure()
}
if let data = response.data {
let response = Response.init(data: data)
}
}
}
我的IP-网络偏好设置中的IP(Mac) 我也连接到同一个wifi。
如果我使用相同的地址访问浏览器,则会在服务器端(终端)获得该地址: 已建立来自('127.0.0.1',52084)的连接。 当我用模拟器设备连接到那里服务器时,它成功了(URL为-127.0.0.1:1234),但是当我尝试从真实设备连接时它失败了,并且出现此错误:Code = -1004“无法连接到服务器。”
如何测试来自真实设备和localhost服务器的连接?
答案 0 :(得分:0)
所以答案是听这个地址:0.0.0.0
s.bind(("0.0.0.0", 1234))
0.0。 0.0表示本地计算机上的所有IPv4地址
答案 1 :(得分:0)
似乎您正在午餐休息,而不是通过套接字连接到服务器。我不认为alamoFire可以处理套接字。试试这个。