The Soul
June 17th, 2010, 23:19
This is old and the design is poor, I only did this for learning purposes. Here it is...
IRCConnection class:
import java.net.Socket;
import java.io.IOException;
import java.util.regex.*;
public class IRCConnection extends Client implements Runnable {
InputOutput io;
Socket s;
public IRCConnection() throws java.net.UnknownHostException {
try {
s = new Socket(getServ(), getPort());
io = new InputOutput(s);
} catch(IOException ioe) {
ioe.printStackTrace();
}
}
public void run() {
String l = "";
try {
new IRCConnection();
io.bw().write("NICK "+getNick()+"\r\n");
io.bw().write("USER "+getNick()+" 8 * :TheSoul\r\n");
io.bw().flush();
while((l = io.br().readLine()) != null) {
System.out.println(l);
Pattern pingRegex = Pattern.compile("^PING", Pattern.CASE_INSENSITIVE);
Matcher ping = pingRegex.matcher(l);
io.bw().write("PONG "+channel+"\n");
io.bw().flush();
}
String s = ":"+getServ()+" 376 "+getNick();
if(l.startsWith(s)) {
io.bw().write("JOIN "+getChan()+"\r\n");
io.bw().flush();
}
} catch(IOException ioe) {
ioe.printStackTrace();
}
}
}
InputOutput class:
import java.io.*;
import java.net.Socket;
public class InputOutput {
BufferedReader br;
BufferedWriter bw;
public InputOutput(Socket s) throws IOException {
br = new BufferedReader(new InputStreamReader(s.getInputStream()));
bw = new BufferedWriter(new OutputStreamWriter(s.getOutputStream()));
}
public BufferedReader br() {
return br;
}
public BufferedWriter bw() {
return bw;
}
}
Client class:
public class Client {
public static void main(String[] args) throws java.net.UnknownHostException {
new Thread(new IRCConnection()).start();
}
String server = "godirc.com";
int port = 6667;
String nick = "SBot";
String channel = "#bot";
public String getServ() {
return server;
}
public int getPort() {
return port;
}
public String getNick() {
return nick;
}
public String getChan() {
return channel;
}
}
IRCConnection class:
import java.net.Socket;
import java.io.IOException;
import java.util.regex.*;
public class IRCConnection extends Client implements Runnable {
InputOutput io;
Socket s;
public IRCConnection() throws java.net.UnknownHostException {
try {
s = new Socket(getServ(), getPort());
io = new InputOutput(s);
} catch(IOException ioe) {
ioe.printStackTrace();
}
}
public void run() {
String l = "";
try {
new IRCConnection();
io.bw().write("NICK "+getNick()+"\r\n");
io.bw().write("USER "+getNick()+" 8 * :TheSoul\r\n");
io.bw().flush();
while((l = io.br().readLine()) != null) {
System.out.println(l);
Pattern pingRegex = Pattern.compile("^PING", Pattern.CASE_INSENSITIVE);
Matcher ping = pingRegex.matcher(l);
io.bw().write("PONG "+channel+"\n");
io.bw().flush();
}
String s = ":"+getServ()+" 376 "+getNick();
if(l.startsWith(s)) {
io.bw().write("JOIN "+getChan()+"\r\n");
io.bw().flush();
}
} catch(IOException ioe) {
ioe.printStackTrace();
}
}
}
InputOutput class:
import java.io.*;
import java.net.Socket;
public class InputOutput {
BufferedReader br;
BufferedWriter bw;
public InputOutput(Socket s) throws IOException {
br = new BufferedReader(new InputStreamReader(s.getInputStream()));
bw = new BufferedWriter(new OutputStreamWriter(s.getOutputStream()));
}
public BufferedReader br() {
return br;
}
public BufferedWriter bw() {
return bw;
}
}
Client class:
public class Client {
public static void main(String[] args) throws java.net.UnknownHostException {
new Thread(new IRCConnection()).start();
}
String server = "godirc.com";
int port = 6667;
String nick = "SBot";
String channel = "#bot";
public String getServ() {
return server;
}
public int getPort() {
return port;
}
public String getNick() {
return nick;
}
public String getChan() {
return channel;
}
}