From 859c8ffdb8578da6011c16e5530c465d185dca46 Mon Sep 17 00:00:00 2001 From: Justice Suh Date: Tue, 2 Jul 2019 11:25:21 -0400 Subject: [PATCH] net: socket send and recv --- vlib/net/socket.v | 19 +++++++++++++++++++ vlib/net/socket_test.v | 9 ++++++++- 2 files changed, 27 insertions(+), 1 deletion(-) diff --git a/vlib/net/socket.v b/vlib/net/socket.v index 86860dc20c..dbf080a789 100644 --- a/vlib/net/socket.v +++ b/vlib/net/socket.v @@ -154,6 +154,25 @@ pub fn dial(address string, port int) Socket { return s } +// send string data to socket +pub fn (s Socket) send(buf byteptr, len int) int { + res := C.send(s.sockfd, buf, len, 0) + if res < 0 { + println('socket: send failed') + } + return res +} + +// receive string data from socket +pub fn (s Socket) recv(bufsize int) byteptr { + buf := malloc(bufsize) + res := C.recv(s.sockfd, buf, bufsize, 0) + if res < 0 { + println('socket: recv failed') + } + return buf +} + // shutdown and close socket pub fn (s Socket) close() int { shutdown_res := C.shutdown(s.sockfd, SHUT_RDWR) diff --git a/vlib/net/socket_test.v b/vlib/net/socket_test.v index 052be66058..6c023fc614 100644 --- a/vlib/net/socket_test.v +++ b/vlib/net/socket_test.v @@ -7,7 +7,14 @@ fn test_socket() { // println(client) // socket := server.accept() // println(socket) -// + +// message := 'Hello World' +// socket.send(message.cstr(), message.len) +// println('Sent: ' + message) + +// bytes := client.recv(1024) +// println('Received: ' + tos(bytes, message.len)) + // server.close() // client.close() // socket.close()