Receive length bytes of data from any sender and store the sender info in sender.item

On error, returns an empty string and sets error appropriately.

Property definitions

socket $ UDPSocket :: recv_from
	# Receive `length` bytes of data from any sender and store the sender info in `sender.item`
	#
	# On error, returns an empty string and sets `error` appropriately.
	fun recv_from(length: Int, sender: Ref[nullable SocketAddress]): String
	do
		var src = new NativeSocketAddrIn
		var buf = new CString(length)

		var len = native.recvfrom(buf, length, 0, src)
		if len == -1 then
			error = new IOError.from_errno
			src.free
			return ""
		end

		sender.item = new SocketAddress(src)
		return buf.to_s_unsafe(len, copy=false)
	end
lib/socket/socket.nit:396,2--413,4