gamnit :: RemoteClient :: handshake
	# Check for compatibility with the client
	fun handshake: Bool
	do
		print "Server: Handshake initiated by {socket.address}"
		# Make sure it is the same app
		var server_app = sys.handshake_app_name
		var client_app = socket.deserialize_msgpack
		if server_app != client_app then
			print_error "Server Error: Client app name is '{client_app or else "<invalid>"}'"
			# Send an empty string so the client read it and give up
			socket.serialize_msgpack ""
			socket.close
			return false
		end
		socket.serialize_msgpack server_app
		# App version
		var app_version = sys.handshake_app_version
		var client_version = socket.deserialize_msgpack
		if client_version != app_version then
			print_error "Handshake Error: client version is different '{client_version or else "<invalid>"}'"
			socket.serialize_msgpack ""
			socket.close
			return false
		end
		socket.serialize_msgpack app_version
		return true
	end
					lib/gamnit/network/server.nit:178,2--210,4