Рейтинг темы:
  • 0 Голос(ов) - 0 в среднем
  • 1
  • 2
  • 3
  • 4
  • 5
помогите начать делать LoginServer L2
#1
Ку. Вообщем проблема, скачал линейку интерлюд, подстроил под себя (localhost).

Вот код, моего "супер" логин сервера. Он просто ловит сокет и должен, как бы должен, вывести присланный от клиента пакет.

Код:
import java.io.IOException;
import java.io.ObjectInputStream;
import java.io.ObjectOutputStream;
import java.lang.ClassNotFoundException;
import java.lang.Runnable;
import java.lang.Thread;
import java.net.ServerSocket;
import java.net.Socket;

public class ServerSocketExample {
    private ServerSocket server;
    private int port = 7777;

    public ServerSocketExample() {
        try {
            server = new ServerSocket(port);
        } catch (IOException e) {
            e.printStackTrace();
        }
    }

    public static void main(String[] args) {
        ServerSocketExample example = new ServerSocketExample();
        example.handleConnection();
    }

    public void handleConnection() {
        System.out.println("Waiting for client message...");

        while (true) {
            try {
                Socket socket = server.accept();
                new ConnectionHandler(socket);
            } catch (IOException e) {
                e.printStackTrace();
            }
        }
    }
}

class ConnectionHandler implements Runnable {
    private Socket socket;

    public ConnectionHandler(Socket socket) {
        this.socket = socket;

        Thread t = new Thread(this);
        t.start();
    }

    public void run() {
        try
        {
            ObjectInputStream ois = new ObjectInputStream(socket.getInputStream());
            String message = (String) ois.readObject();
            System.out.println("Message Received: " + message);
            ois.close();
            socket.close();
        } catch (IOException e) {
            e.printStackTrace();
        } catch (ClassNotFoundException e) {
            e.printStackTrace();
        }
    }
}

Когда в линейке ввожу логин-пасс, сокет ловит коннект, но больше ничего... Что я делаю не так ? Спасибо.
Ответ
#2
Ты в ядре чтоли настраивал под себя?
Ответ
#3
Просто ИНИшку.
Ответ
#4
Просто клиент ниче не пошлет пока не получит пакет Init с ключем криптования
Ответ
#5
На какой стадии мне посылать пакет ? Сокет открылся и сразу слать ?
Ответ
#6
да, это для ЛС)

Добавлено через 3 минуты
C - клиент
S - сервак

Вот так работает ЛС

S -> C Init - крипт
C -> S REquestAuthGG
S -> C GameGuardAuth
C -> S RequestAuth
S -> C LoginOk/LoginFail
C -> S RequestServerList
S -> C ServerList
C -> S RequestServerLogin
S -> C PlayOk/PlayFail

Вот так ГС
C -> S ProtocolVersion
S -> C KeyPacket -ключ
....

Добавлено через 4 минуты
пишу с памьяти могу ошибатся в имени пакета
Ответ
#7
Спасибо. Тема закрыта.
Ответ


Возможно похожие темы ...
Тема Автор Ответы Просмотры Последний пост
  @Override - Помогите Wolfas 7 3,123 11-05-2011, 05:07 PM
Последний пост: Wolfas
  Помогите в написании элементарных программ AgenT 7 5,179 03-29-2010, 09:16 PM
Последний пост: figure

Перейти к форуму:


Пользователи, просматривающие эту тему: 6 Гость(ей)