Рейтинг темы:
  • 0 Голос(ов) - 0 в среднем
  • 1
  • 2
  • 3
  • 4
  • 5
После перезахода сервер отказываеться видить клиент
#1
Заходишь на сервер переходишь на гейм сервер выходишь с него
потом снова заходишь на сервер авторизации все хорошо, переходишь в гейм и гейм сервер отказывается читать или подключать клиент не видит не чего NetworkManager молчит но после клика в консоль все начинает работать как исправить помогите мне пожалуйста
[SRC="csharp"] public TcpClient Client { get; set; }
public NetworkStream Stream { get; set; }
public Account Account { get; set; }
public string Login { get; set; }// незнаю нахуй пусть будет пригодиться!
public int Id { get; set; }
byte[] buffer = new byte[2048];
public int ChannelId { get; set; }
public int channel_id = -1;
public int player_id = 0;
public void setChannelId(int id)
{
ChannelId = Id;
}
public void Accept(TcpClient client)
{
Client = client;
Stream = client.GetStream();
ChannelId = -1;
SendPacket(new PROTOCOL_BASE_CONNECTION_ACK(this));
Stream.BeginRead(buffer, 0, buffer.Length, BeginRead, null);
}
public void BeginRead(IAsyncResult asyncResult)
{
try
{
int received = Stream.EndRead(asyncResult);
if (received != 0)
{
while (received >= 6)
{
int length = BitConverter.ToUInt16(buffer, 0) & 0x7FFF;
byte[] temp = new byte[length + 2];
Array.Copy(buffer, 2, temp, 0, temp.Length);

int bits = Id % 7 + 1;
BitShift.Unshift(temp, bits);

byte[] opcode = new byte[] { temp[0], temp[1] };
RecvOpcode packet = (RecvOpcode)BitConverter.ToUInt16(opcode, 0);
Type t = Type.GetType("Server.Game.Network.packets.client." + packet.ToString());

if (t != null)
{
if (packet.ToString() != "PROTOCOL_LOBBY_GET_ROOMLIST_REQ") { Logger.Info("[Packet Handler] Receive {1} packet opcode {0}", BitConverter.ToInt16(opcode, 0), packet.ToString()); }
//Logger.Info("[Packet Handler] Receive {1} packet opcode {0}", BitConverter.ToInt16(opcode, 0), packet.ToString());
ReceivePacket clientpacket = (ReceivePacket)Activator.CreateInstance(t);
clientpacket.Client = this;
clientpacket.Process(temp);
ThreadManager.runNewThread(new Thread(new ThreadStart(clientpacket.RunImpl)));
}
else
{
Logger.Info("[Packet Handler] Receive unk packet {0}", BitConverter.ToInt16(opcode, 0));
Logger.Trace(temp.ToHex());
}
received -= length + 4;
Array.Copy(buffer, length + 4, buffer, 0, received); // << Копируем оставшиеся данные в начало буфера
}
Stream.BeginRead(buffer, 0, buffer.Length, BeginRead, Stream);
}
else
{
Close();
}
}
catch (IOException)
{
Close();
}
catch (Exception ex)
{
Close();

}
}
public void SendPacket(SendPacket packet)
{
packet.Client = this;
packet.WriteImpl();
byte[] data = packet.ToByteArray();
byte[] lenght = BitConverter.GetBytes((short)data.Length);
byte[] opcode = BitConverter.GetBytes(Convert.ToInt16((int)Enum.Parse(typeof(SendOpcode), packet.GetType().Name)));
byte[] buff = new byte[data.Length + 4];
Array.Copy(lenght, 0, buff, 0, lenght.Length);
Array.Copy(opcode, 0, buff, 2, opcode.Length);
Array.Copy(data, 0, buff, 4, data.Length);
Stream.Write(buff, 0, buff.Length);
if (packet.GetType().Name != "PROTOCOL_LOBBY_GET_ROOMLIST_ACK") { Logger.Info("[SendPacket] Receive {1} packet opcode {0}", BitConverter.ToInt16(opcode, 0), packet.GetType().Name); }
//Logger.Info("[SendPacket] Receive {1} packet opcode {0}", BitConverter.ToInt16(opcode, 0), packet.GetType().Name);

}
public void Close()
{
NetworkManager.Instance.removeClient(this);
}
public Account restoreAccount(string acc)
{
Account account = AccountManager.getInstance().get(acc);
if (account == null)
{
return null;
}
account.setConnected(true);
this.setAccount(account.player_id);
return account;
}
public void setAccount(int id)
{
this.player_id = id;
}
}
}
[/SRC]
вот скрин консоли с клиентом https://hostingkartinok.com/show-image.p...5ad58cd6c1
Ответ
#2
Код:
public void Close()
        {
            NetworkManager.Instance.removeClient(this);
        }
Соединение с сервером разорвано? Сокет не висит?
Код выше чистит лист соединений это понятно, состояние сокета какое? Он как положено высвободился?
Ответ
#3
slawa560,
Game Server:
Add Packet & Fix Opcode Packet
Packet PROTOCOL_BASE_USER_ENTER
Packet PROTOCOL_BASE_GET_CHANNELLIST
Packet PROTOCOL_BASE_SELECT_CHANNEL
Разработка Emu: PiercingBlow 90%, APB Reloaded 100%.
Самый действенный инструмент для самообучения - грабли.
Ответ
#4
Ребят исправил все отлично! добавил в void Close()
public void Close()
{
NetworkManager.Instance.removeClient(this);// удаляем из NetworkManager сессию
Stream.Close();// закрываем стрим
Client.Close();// закрываем клиентское соединение
Stream.Dispose();// освобождаем стрим
}
Ответ
#5
slawa560 Написал:Ребят исправил все отлично! добавил в void Close()
public void Close()
{
NetworkManager.Instance.removeClient(this);// удаляем из NetworkManager сессию
Stream.Close();// закрываем стрим
Client.Close();// закрываем клиентское соединение
Stream.Dispose();// освобождаем стрим
}

все что касается потоков (stream и производных) метод Сlose уже включает в себя Dispose
Ответ
#6
Hay Buddies
I have problem when running the project blackout client
In my database, I have used sha-1 online for my password
and also I have opened port 39190 TCP

but I still cannot Login to the game " Username and password incorrect!"

Can anyone help me?
[Изображение: aJgkRQf]
[Изображение: login_incorrect1.png]
Ответ
#7
naraleo Написал:Hay Buddies
I have problem when running the project blackout client
In my database, I have used sha-1 online for my password
and also I have opened port 39190 TCP

but I still cannot Login to the game " Username and password incorrect!"

Can anyone help me?
[Изображение: aJgkRQf]
[Изображение: login_incorrect1.png]
PB-AUTH/CONFIG/SYSTEM.PROPERTIES/AUTOCREATEACCOUNT = TRUE
DELETE OLD ACCOUNT
Ответ


Возможно похожие темы ...
Тема Автор Ответы Просмотры Последний пост
  ничего не приходит после PROTOCOL_BASE_CONNECT_ACK Sojang 41 8,468 06-09-2024, 03:58 PM
Последний пост: empireb
  Нужен клиент или отдельные файлы wrngdeath 0 1,081 12-03-2022, 06:14 PM
Последний пост: wrngdeath
  сервер от Point Balnk 3,24 до 3,66 indice201 0 2,595 12-25-2021, 09:38 PM
Последний пост: indice201
  Russian 3.16 хочу писать сервер zOne62 2 3,692 02-12-2020, 09:54 AM
Последний пост: zOne62
  Вылетает клиент при получение MyInfo slawa560 2 2,589 08-23-2017, 06:02 PM
Последний пост: Awiion
  маленткая производительность сервер Java slawa560 11 2,959 08-10-2017, 11:57 PM
Последний пост: Sojang
  После покупки предмета 0 часов slawa560 1 1,469 08-06-2017, 12:15 AM
Последний пост: PROGRAMMATOR
  Auth server не кого не впускает клиент slawa560 5 1,826 06-12-2017, 06:11 PM
Последний пост: slawa560
  Помогите с комнатами при входе игрока вылетает клиент slawa560 2 1,259 05-23-2016, 06:38 PM
Последний пост: slawa560
  Клиент Project Blackout Sojang 5 2,594 01-11-2016, 07:45 PM
Последний пост: PROGRAMMATOR

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


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