mirror of
https://github.com/vlang/v.git
synced 2023-08-10 21:13:21 +03:00
net.socket: windows fixes and test
* added missing ai_canonname in addrinfo structure * ai_canonname, ai_addr and ai_addrlen must be zeroed before getaddrinfo call * write() must not be used on windows sockets * added (Socket).get_port() function which is useful when socket was initialized with 0 (random) port * tests is fixed, test server started listening on random port to avoid conflicts
This commit is contained in:

committed by
Alexander Medvednikov

parent
f1bb25bfaf
commit
a42b4e219c
@ -1,30 +1,29 @@
|
||||
import net
|
||||
|
||||
fn test_socket() {
|
||||
// server := net.listen(8080) or {
|
||||
// println(err)
|
||||
// return
|
||||
// }
|
||||
// println(server)
|
||||
// client := net.dial('127.0.0.1', 8080) or {
|
||||
// println(err)
|
||||
// return
|
||||
// }
|
||||
// println(client)
|
||||
// socket := server.accept() or {
|
||||
// println(err)
|
||||
// return
|
||||
// }
|
||||
// println(socket)
|
||||
//
|
||||
// message := 'Hello World'
|
||||
// socket.send(message.str, message.len)
|
||||
// println('Sent: ' + message)
|
||||
//
|
||||
// bytes := client.recv(1024)
|
||||
// println('Received: ' + tos(bytes, message.len))
|
||||
//
|
||||
// server.close()
|
||||
// client.close()
|
||||
// socket.close()
|
||||
mut server := net.listen(0) or {
|
||||
println(err)
|
||||
return
|
||||
}
|
||||
server_port := server.get_port()
|
||||
mut client := net.dial('127.0.0.1', server_port) or {
|
||||
println(err)
|
||||
return
|
||||
}
|
||||
mut socket := server.accept() or {
|
||||
println(err)
|
||||
return
|
||||
}
|
||||
|
||||
message := 'Hello World'
|
||||
socket.send(message.str, message.len)
|
||||
|
||||
bytes := client.recv(1024)
|
||||
received := tos(bytes, message.len)
|
||||
|
||||
assert message == received
|
||||
|
||||
server.close()
|
||||
client.close()
|
||||
socket.close()
|
||||
}
|
||||
|
Reference in New Issue
Block a user