timboiscool
Gebruiker
- Lid geworden
- 27 nov 2008
- Berichten
- 205
Hallo Mensen!
Als allereerst zou ik graag willen zeggen dat ik nieuw ben met Sockets.
Voor de rest kan ik best C# programmeren.
Ik vroeg me af hoe ik een packet kon verzenden via C# die bytes, strings en Integers bevat.
Deze packet gaat naar mijn minecraft server en is een zogenaamde 'handshake' waarmee een persoon inlogt op de server.
Hier is een tabel van wat het bevat:
Packet ID Field Name Field Type Example Notes
0x02 Protocol Version byte 39
Username string TkTech The username of the player attempting to connect
Server Host string localhost
Server Port int 25565
Hoe moet ik dit doen??
Ik heb al wat geprobeert:
Ik hoop dat iemand code kan geven en uitleggen wat wat doet of hoe het werkt.
Alleen code is ook goed maar ik heb liever met wat uitleg ( als het kan )
Bedankt, Tim.
Als allereerst zou ik graag willen zeggen dat ik nieuw ben met Sockets.
Voor de rest kan ik best C# programmeren.
Ik vroeg me af hoe ik een packet kon verzenden via C# die bytes, strings en Integers bevat.
Deze packet gaat naar mijn minecraft server en is een zogenaamde 'handshake' waarmee een persoon inlogt op de server.
Hier is een tabel van wat het bevat:
0x02 Protocol Version byte 39
Username string TkTech The username of the player attempting to connect
Server Host string localhost
Server Port int 25565
Hoe moet ik dit doen??
Ik heb al wat geprobeert:
Code:
static void Main(string[] args)
{
TcpClient client = new TcpClient();
IPEndPoint serverEndPoint = new IPEndPoint(IPAddress.Parse("127.0.0.1"), 25565);
client.Connect(serverEndPoint);
NetworkStream clientStream = client.GetStream();
ASCIIEncoding encoder = new ASCIIEncoding();
byte[] name, server;
name = System.Text.ASCIIEncoding.ASCII.GetBytes("randomness");
server = System.Text.ASCIIEncoding.ASCII.GetBytes("127.0.0.1");
clientStream.WriteByte(0x20);
clientStream.WriteByte(39);
clientStream.Write(name, 0, name.Length);
clientStream.Write(server, 0, server.Length);
clientStream.Write(gb("25565"), 0, gb("25565").Length);
clientStream.Flush();
clientStream.Close();
client.Close();
}
public static byte[] gb(String str)
{
return System.Text.ASCIIEncoding.ASCII.GetBytes(str);
}
Ik hoop dat iemand code kan geven en uitleggen wat wat doet of hoe het werkt.
Alleen code is ook goed maar ik heb liever met wat uitleg ( als het kan )
Bedankt, Tim.
Laatst bewerkt: