接收TCP数据包我想发出一个TCP数据包,使用sacpy,从服务器(Python)的客户端(SWIFT)。 从服务器发送所述消息:斯威夫特
packet = IP()/TCP()/Raw()
print(CLIENT_IP, CLIENT_PORT)
packet[IP].dst = CLIENT_IP
packet[TCP].dport = CLIENT_PORT
#packet[Raw].load = str(to_text(places_list))
#print(str(to_text(places_list)))
packet[Raw].load = "HELLO WORLD"
send(packet)
接收的代码在迅速:
var request = URLRequest(url: URL(string: "http://10.172.0.136:80")!)
request.httpMethod = "POST"
let postString = "x=30&y=10&name=hello"
request.httpBody = postString.data(using: .utf8)
let task = URLSession.shared.dataTask(with: request) { data, response, error in
guard let data = data, error == nil else { // check for fundamental networking error
print("error=\(String(describing: error))")
return
}
if let httpStatus = response as? HTTPURLResponse, httpStatus.statusCode != 200 { // check for http errors
print("statusCode should be 200, but is \(httpStatus.statusCode)")
print("response = \(String(describing: response))")
}
let responseString = String(data: data, encoding: .utf8)
print("responseString = \(String(describing: responseString))")
print("response = \(String(describing: response))")
}
task.resume()
该分组被从服务器发送,但是客户端不会收到它。 我尝试发送分组到该端口,从该消息是从客户端发送到服务器。也尝试发送到端口80(HTTP)。 在这两种情况下,错误是:(10.172.0.136是服务器的IP)
错误=可选(错误域= NSURLErrorDomain代码= -1005 “网络连接已丢失” 的UserInfo = {NSUnderlyingError = 0x608001043330 {错误域= kCFErrorDomainCFNetwork代码= -1005 “(空)” 的UserInfo = {_ kCFStreamErrorCodeKey = -4,kCFStreamErrorDomainKey = 4}},NSErrorFailingURLStringKey = http://10.172.0.136:80/,NSErrorFailingURLKey = http://10.172.0.136:80/,kCFStreamErrorDomainKey = 4,_kCFStreamErrorCodeKey = -4,NSLocalizedDescription =该网络连接))
我假设问题出在客户端的接收端(U唱Wireshark我看到消息正确嗅探)。 有没有简单的方法来修复我的代码?如果它确实是不可修复的,我可以用什么其他方式来快速接收数据包?
2017-08-28
Inbal