コード例 #1
0
ファイル: ping.go プロジェクト: 1lann/beacon
// ReadHandshakePacket reads a handshake packet (packet ID 0) and decodes it.
func ReadHandshakePacket(s protocol.Stream) (HandshakePacket, error) {
	handshake := HandshakePacket{}
	var err error
	if handshake.ProtocolNumber, err = s.ReadVarInt(); err != nil {
		return HandshakePacket{}, err
	}

	if handshake.ServerAddress, err = s.ReadString(); err != nil {
		return HandshakePacket{}, err
	}

	if handshake.ServerPort, err = s.ReadUInt16(); err != nil {
		return HandshakePacket{}, err
	}

	handshake.NextState, err = s.ReadVarInt()
	return handshake, err
}