Сообщений: 2,302 
	Тем: 24 
	Зарегистрирован: Sep 2010
	
 Репутация: 
 5,617
	 
 
	
	
		linliss Написал:Вы не поняли... 
 
Сделайте так: запустите логин сервер, введите ак и пас, появляется окно с лицензией, вырубите логин сервер, вуаля, появляется "Связь с сервером прервалась, бла бла бла", вот это мне и нужно - закрыть конект как будто бы я выключил сервер, чтоб вылезло "Связь с сервером прервалась". 
 
Просто закрыв сокет клиента, получить такой-же результат неполучается... 
Яж написал, что ДО перехода на ГС, клиент не может физически отобразить сообщение о дисконнекте.
	  
	
	
	
	
 
 
	
	
	
		
	Сообщений: 1,759 
	Тем: 13 
	Зарегистрирован: May 2011
	
 Репутация: 
 3,205
	 
 
	
	
		ANZO Написал:Яж написал, что ДО перехода на ГС, клиент не может физически отобразить сообщение о дисконнекте. тогда попробую простенький логин сервер на с++ сделать... мне кажется все дело в яве...
	  
	
	
	
	
 
 
	
	
	
		
	Сообщений: 631 
	Тем: 12 
	Зарегистрирован: May 2009
	
 Репутация: 
 3,873
	 
 
	
	
		На сколько мне известно на l2j hi5 если где-то за минуту не выбрать сервер, то появляется именно такое сообщение.
	 
	
	
	
	
 
 
	
	
	
		
	Сообщений: 1,759 
	Тем: 13 
	Зарегистрирован: May 2011
	
 Репутация: 
 3,205
	 
 
	
		
		
		12-04-2012, 09:34 AM 
(Сообщение последний раз редактировалось: 12-04-2012, 11:35 AM   linliss.)
		
	 
	
		kingzor Написал:На сколько мне известно на l2j hi5 если где-то за минуту не выбрать сервер, то появляется именно такое сообщение. сейчас попробуем..
 Добавлено через 10 минут
kingzor Написал:На сколько мне известно на l2j hi5 если где-то за минуту не выбрать сервер, то появляется именно такое сообщение. Код: if ((client.getConnectionStartTime() + LOGIN_TIMEOUT) < System.currentTimeMillis()) 
{ 
    client.close(LoginFailReason.REASON_ACCESS_FAILED); 
}
 
это не то что нужно...
 Добавлено через 2 часа 1 минуту
Кто ковырял клиент, может знаете почему клиент понимает, что связь потеряна только если выключить логин сервер? Почему при закрытии сокета в клиенте 0 реакции, но если выключить селектор он сразу же понимает, что связи нет?
	  
	
	
	
	
 
 
	
	
	
		
	Сообщений: 526 
	Тем: 28 
	Зарегистрирован: Oct 2009
	
 Репутация: 
 7,209
	 
 
	
	
		попробуй так закрыть соединение 
Код: getConnection().close((SendablePacket<L2LoginClient>) null);
  
	 
	
	
	
	
 
 
	
	
	
		
	Сообщений: 1,759 
	Тем: 13 
	Зарегистрирован: May 2011
	
 Репутация: 
 3,205
	 
 
	
	
		MHard Написал:попробуй так закрыть соединение 
Код: getConnection().close((SendablePacket<L2LoginClient>) null);
  Сервер закрывает соединение, у клиента 0 реакции, я уже пробовал так.
	  
	
	
	
	
 
 
	
	
	
		
	Сообщений: 2,036 
	Тем: 37 
	Зарегистрирован: Jun 2011
	
 Репутация: 
 10,597
	 
 
	
	
		В какой-то лыжиподобной сборке, вроде опенсурсном Опене, есть "защита об ботов", которая дисконнектит именно с таким окном. Можно там глянуть, вдруг будет то, что надо. (:
	 
	
	
	
	
 
 
	
	
	
		
	Сообщений: 526 
	Тем: 28 
	Зарегистрирован: Oct 2009
	
 Репутация: 
 7,209
	 
 
	
	
		к сожалению лыжа не стоит проверить не могу. 
но можно попробовать принудительно закрыть сокет без отправки каких либо пакетов.
 
в src\org\mmocore\network\MMOConnection.java
 
сделай функцию доступной (public)
 Код:     [color=Red]public[/color] final void close() throws IOException 
    { 
        _socket.close(); 
    }
 
и закрывай соединение
 
getConnection().close();
 
если получится то переделай немного закрытие клиента чтобы выполнялись необходимые дейстия из 
closeConnectionImpl
 Цитата:				con.releaseBuffers(); 
				// clear attachment 
				key.attach(null); 
				// cancel key 
				key.cancel(); 
	 
	
	
	
	
 
 
	
	
	
		
	Сообщений: 1,759 
	Тем: 13 
	Зарегистрирован: May 2011
	
 Репутация: 
 3,205
	 
 
	
		
		
		12-04-2012, 12:48 PM 
(Сообщение последний раз редактировалось: 12-04-2012, 01:14 PM   linliss.)
		
	 
	
		MHard Написал:к сожалению лыжа не стоит проверить не могу. 
 
но можно попробовать принудительно закрыть сокет без отправки каких либо пакетов. 
 
в src\org\mmocore\network\MMOConnection.java 
 
сделай функцию доступной (public) 
 
Код:     [color=Red]public[/color] final void close() throws IOException 
    { 
        _socket.close(); 
    }
  
и закрывай соединение 
 
getConnection().close(); 
 
если получится то переделай немного закрытие клиента чтобы выполнялись необходимые дейстия из 
closeConnectionImpl Я уже выше писал, что пробовал принудительно закрывать сокет(именно так как вы и предложили), в клиенте все равно ничего непоявляется  .
 Добавлено через 26 минут
Dеmon Написал:В какой-то лыжиподобной сборке, вроде опенсурсном Опене, есть "защита об ботов", которая дисконнектит именно с таким окном. Можно там глянуть, вдруг будет то, что надо. (: была б она у меня... можно было бы глянуть что там...
	  
	
	
	
	
 
 
	
	
	
		
	Сообщений: 86 
	Тем: 2 
	Зарегистрирован: Sep 2010
	
 Репутация: 
 757
	 
 
	
	
		Wireshark и глянуть, что по tcp идет на отрублении. Врядле вы этим сможете управлять. С SO_LINGER  и другими опциями не игрались?
	 
	
	
	
	
 
 
	 
 |