Mengatur versi klien untuk bot irc Java

Saya mencoba membuat bot irc dengan Java. Saat ini masalah saya adalah saya tidak dapat menghubungkannya ke Quakenet. Saya menerima pesan "Klien Anda mungkin tidak kompatibel dengan server ini." Mungkin karena saya belum menyetel versi klien apa pun untuk bot ini. Bagaimana saya bisa melakukan itu?

Saya mengetahui bahwa ada perpustakaan untuk membuat bot irc dengan Java tetapi saya ingin membuatnya dari awal untuk mendapatkan lebih banyak pengetahuan tentangnya.


person Kamsiinov    schedule 17.11.2016    source sumber


Jawaban (1)


Artinya adalah server mengirimkan pesan kepada klien Anda yang menanyakan versinya, dan klien Anda, jika merespons sama sekali, tidak merespons dengan string yang disukai server. Ini tidak ada hubungannya dengan perpustakaan perangkat lunak (atau versinya) yang Anda gunakan.

Saya sarankan membaca RFC1459 (protokol IRC) dan mengamati lalu lintas mentah yang dikirim ke klien Anda untuk melihat apa yang sebenarnya terjadi. Seperti yang pernah dikatakan Yogi Berra, "Anda banyak mengamati hanya dengan menonton."

person Duston    schedule 17.11.2016
comment
Terima kasih. Namun bisakah Anda menjelaskannya sedikit? Saya tidak yakin bagaimana saya bisa melihat lebih banyak lalu lintas karena saya pikir saya sedang mencoba menampilkan semuanya ke konsol. - person Kamsiinov; 18.11.2016
comment
Pada akhirnya yang Anda lakukan hanyalah membuka soket. Cetak saja apa pun yang berasal dari soket itu ke konsol (selain apa pun yang Anda lakukan dengannya.) Anda akan melihat segala macam hal menyenangkan. Saya menulis bot dari awal beberapa tahun yang lalu tetapi tidak dapat menemukan sumbernya. Upaya terbaru saya menggunakan perpustakaan pIRC. Ini berfungsi dengan baik, tetapi karena Anda ingin membuat sendiri, itu tidak akan banyak membantu Anda. - person Duston; 18.11.2016
comment
Itu juga solusinya. Tampaknya untuk bergabung dengan jaringan IRC saya tidak perlu menentukan versi apa pun. Hanya Nick dan nama pengguna. Pada akhirnya yang saya butuhkan hanyalah: Socket socket= new Socket(server, 6667); BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(soketti.getOutputStream())); BufferedReader br = new BufferedReader(new InputStreamReader(soketti.getInputStream())); System.out.println("Starting login"); // Login to server bw.write("NICK " + nickname + "\r\n"); bw.write("USER " + login + " 8 * : robot\r\n"); bw.flush(); - person Kamsiinov; 19.11.2016