Я пишу этот крошечный служебный метод для проверки отправки необработанных пакетов в определенную сеть обмена сообщениями (планирование разработки клиента для подключения к нему).
Сеть является сетью обмена сообщениями Deviantart (chat.deviantart.com:3900; TCP).
Мой класс:
protected void connect() throws IOException{
Socket dAmn = null;
//BufferedWriter out = null;
PrintWriter out = null;
BufferedReader in = null;
/*
* Create Socket Connection
*/
try{
dAmn =
new Socket("chat.deviantart.com", 3900);
/*out =
new BufferedWriter(new OutputStreamWriter(dAmn.getOutputStream()));*/
out =
new PrintWriter(dAmn.getOutputStream(), true);
in =
new BufferedReader(new InputStreamReader(dAmn.getInputStream()));
}
catch(SocketException e){
System.err.println("No host or port for given connection");
//handle
}
catch(IOException e){
System.err.println("I/O Error on host");
//handle
}
String userInput;
BufferedReader userIn =
new BufferedReader(new InputStreamReader(System.in));
/*
* dAmn communication
*/
while((userInput = userIn.readLine()) != null){
out.write(userInput);
System.out.println(in.readLine());
}
if(in!=null)
in.close();
if(out!=null)
out.close();
if(dAmn!=null)
dAmn.close();
}
Серверу требуется отправить рукопожатие, прежде чем можно будет войти в систему. Типичный пакет входа в систему выглядит так:
dAmnclient damnClient (в настоящее время 0.3)
агент = агент
Каждый пакет должен заканчиваться символом новой строки и нулем.
Мой пакет рукопожатия будет выглядеть примерно так:
dAmnClient 0.3 \ nagent = SomeAgent \ n \ 0
Однако сервер просто отвечает: отключить
Я думаю, что-то неправильно анализируется, какой-нибудь совет? Кроме того, если вы очень заинтересованы в том, чтобы помочь мне: вот небольшая документация по клиенту -> протокол сервера dAmn:
http://botdom.com/wiki/DAmn#dAmnClient_.28handshake.29