You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Currently i am working on two applications which will installed on same device and communicate over socket. So for that we need a local socket server and local socket client.
So i have created server which has signature:
Optional(Signature: family: inet6, type: stream, protocol: tcp, address: Optional(Socket.Socket.Address.ipv6(__C.sockaddr_in6(sin6_len: 28, sin6_family: 30, sin6_port: 34084, sin6_flowinfo: 0, sin6_addr: __C.in6_addr(__u6_addr: __C.in6_addr.__Unnamed_union___u6_addr()), sin6_scope_id: 0))), hostname: Optional("::"), port: 9349, path: nil, bound: true, secure: false)
it start listening on port 9349. After some time it received client connection and it accept the connection.
client signature is:
(Signature: family: inet6, type: stream, protocol: tcp, address: Optional(Socket.Socket.Address.ipv6(__C.sockaddr_in6(sin6_len: 28, sin6_family: 30, sin6_port: 61890, sin6_flowinfo: 0, sin6_addr: __C.in6_addr(__u6_addr: __C.in6_addr.__Unnamed_union___u6_addr()), sin6_scope_id: 0))), hostname: Optional("::1"), port: 49905, path: nil, bound: false, secure: false)
Now when i start reading the data/string i received nothing. we have implemented the same architecture on android which is working fine.
My reading code is:
func addNewConnection(socket: Socket) {
self.connectedSockets[socket.socketfd] = socket
try? socket.setReadTimeout(value: 10000)
try? socket.setWriteTimeout(value: 10000)
let queue = DispatchQueue.global(qos: .default)
DispatchQueue.main.asyncAfter(deadline: DispatchTime.now() + 1, execute: {
print("sending message ")
do{
let reply = "Server from response"
let written = try socket.write(from: reply)
print("sent to client is: \(written)")
}catch let error{
print("error in replying for connection \(error) and \(error.localizedDescription)")
}
})
func readNewData(){
print("reading once again")
var readData = Data()
do{
//let stringRead = try socket.readString()
let bytesRead = try listenSocket?.read(into: &readData) ?? 0//socket.read(into: &readData)
if bytesRead > 0 {
guard let response = String(data: readData, encoding: .utf8) else {
print("Error decoding response...")
return
//break
}
print("data string read in socket are \(response)")
}
}catch let error{
print("error reading data in socket \(error) and \(error.localizedDescription)")
}
}
timer.eventHandler = {
readNewData()
}
timer.resume()
}
am i doing anything wrong here or my implementation itself is wrong? please help.
The text was updated successfully, but these errors were encountered:
Hi all,
Currently i am working on two applications which will installed on same device and communicate over socket. So for that we need a local socket server and local socket client.
So i have created server which has signature:
Optional(Signature: family: inet6, type: stream, protocol: tcp, address: Optional(Socket.Socket.Address.ipv6(__C.sockaddr_in6(sin6_len: 28, sin6_family: 30, sin6_port: 34084, sin6_flowinfo: 0, sin6_addr: __C.in6_addr(__u6_addr: __C.in6_addr.__Unnamed_union___u6_addr()), sin6_scope_id: 0))), hostname: Optional("::"), port: 9349, path: nil, bound: true, secure: false)
it start listening on port 9349. After some time it received client connection and it accept the connection.
client signature is:
(Signature: family: inet6, type: stream, protocol: tcp, address: Optional(Socket.Socket.Address.ipv6(__C.sockaddr_in6(sin6_len: 28, sin6_family: 30, sin6_port: 61890, sin6_flowinfo: 0, sin6_addr: __C.in6_addr(__u6_addr: __C.in6_addr.__Unnamed_union___u6_addr()), sin6_scope_id: 0))), hostname: Optional("::1"), port: 49905, path: nil, bound: false, secure: false)
Now when i start reading the data/string i received nothing. we have implemented the same architecture on android which is working fine.
My reading code is:
func addNewConnection(socket: Socket) {
am i doing anything wrong here or my implementation itself is wrong? please help.
The text was updated successfully, but these errors were encountered: