standard.net.socket.SocketRead

SocketRead is available since version 1.0.

Prototype:

number SocketRead(number socket, var buffer, number size,[, bSocketIsUDP=false[, bReceiveExactSize=false]])

Parameters

socket
a valid and socket descriptor, as returned by SocketCreate
buffer
the buffer to fill with retrieved data (any variable, will be allocated by the function)
size
the maximum amount of data to read
bSocketIsUDP
must be set to true only for UDP sockets
bReceiveExactSize
if set to true, packets will be waited, until the buffer will have exactly size octets (default is false).

Description:

Receives data from a connected socket.

Return value:

Returns -1 if failed, or the amount of data read if succeeded.

Example
import standard.net.socket
import standard.lang.cli
import standard.C.io

define DEFAULT_ADDRESS	"www.yahoo.com"
define DEFAULT_PORT	80
define MAX_SIZE		0xFFFF

class Main {
	function Main() {
		// get the command line arguments
		var args=CLArg();
		var host=DEFAULT_ADDRESS;
		var port=DEFAULT_PORT;
		
		if (length args) {
			host=args[0];
			if (args[1])
				port=value args[1];
		}

		var s=SocketCreate();

		echo "Connecting ... ";
		if (SocketConnect(s, host, port)==-1) {
			echo "Couldn't Connect to $host on port $port: "+SocketError(s)+"\n";
			return 0;
		}

		echo "Connected !\n";

		SocketWrite(s, "GET /\r\n\r\n");

		// try to read exactly MAX_SIZE bytes (the server will disconnect us)
		SocketRead(s, var data, MAX_SIZE, false, true);

		WriteFile(data, host+".html");

		SocketClose(s);
	}
}