Форум администраторов игровых серверов

Форум администраторов игровых серверов (https://forum.zone-game.info/TT.php)
-   Java (https://forum.zone-game.info/forumdisplay.php?f=126)
-   -   помогите начать делать LoginServer L2 (https://forum.zone-game.info/showthread.php?t=9679)

kykazzz 18.08.2010 10:55

помогите начать делать LoginServer L2
 
Ку. Вообщем проблема, скачал линейку интерлюд, подстроил под себя (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();
        }
    }
}

Когда в линейке ввожу логин-пасс, сокет ловит коннект, но больше ничего... Что я делаю не так ? Спасибо.

DeForMator 18.08.2010 11:02

Re: помогите начать делать LoginServer L2
 
Ты в ядре чтоли настраивал под себя?

kykazzz 18.08.2010 11:13

Re: помогите начать делать LoginServer L2
 
Просто ИНИшку.

VISTALL 18.08.2010 13:51

Re: помогите начать делать LoginServer L2
 
Просто клиент ниче не пошлет пока не получит пакет Init с ключем криптования

kykazzz 18.08.2010 13:57

Re: помогите начать делать LoginServer L2
 
На какой стадии мне посылать пакет ? Сокет открылся и сразу слать ?

VISTALL 18.08.2010 13:58

Re: помогите начать делать LoginServer L2
 
да, это для ЛС)

Добавлено через 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 минуты
пишу с памьяти могу ошибатся в имени пакета

kykazzz 18.08.2010 14:11

Re: помогите начать делать LoginServer L2
 
Спасибо. Тема закрыта.


Текущее время: 17:50. Часовой пояс GMT +3.

Powered by vBulletin® Version 3.8.6
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd. Перевод: zCarot