close_btn
로그인, 회원가입후 더 많은 혜택을 누리세요 로그인 회원가입 닫기

Netty 4.1.11 최신 버전 적용하기

2018.04.21 15:40

검은손 조회 수:289

Netty3 - > Netty4 넘어오게되면서 적용하는 소스도 좀 바뀌었는데요 
제가 직접 사용했었던 소스는 팩자체가 너무 달라서 그대로 올릴수없어 인터넷에 떠도는 공개팩 주워서 
새로 구현후 테스트 마치고 배포합니다. 팩은 일팩인데 정확히는 잘모르겠습니다. 
저는 에바, 로봇 ,코어 등 이런 명칭으로 분류하지않고 그냥 일팩 으로 통합합니다.  
 
첨부파일 압축을 풀면 Netty 폴더안 4개파일 , CircleArray.java, netty-all-4.1.11.Final.jar 가 들어있는데 
예전에 성능 향상을 위해서  xx연구소등 에 원형배열 이라는  CircleArray 를 구현하는방법과 예제소스를 공개했었는데요
그부분도 같이 적용해놨습니다. 전체적으로 굴러다니던 공개팩에다가 구현한 소스이기때문에 본인 팩에 맞게끔 수정을 하셔야합니다.
최대한 편하게 주석처리를 해놨으니 잘살펴보시기바람니다.
 
 
먼저 netty-all-4.1.11.Final.jar 파일을 팩 폴더 의 lib 폴더안에 넣어주세요 
(라이브러리를 적용하는 방법은 따로 설명드리진 않겠습니다. 수정해야할부분 : 이클립스 의 라이브러리 적용,build.xml, ServerStart.bat)
 
 
Netty 폴더 와 CircleArray.java 를 통으로 l1j.server.network 위치에 넣어주세요 network폴더가 없으면 만드셔도 되고 
적당한 위치에 넣은후 각 소스파일의 package 등 경로를 수정하셔도 무방합니다.
 
- 적용하시는 중에 모르는 부분이나 잘안되는부분이 있다면 언제든 말씀하시면 도움을 드리겠습니다-
 
Server.java
import 추가

import io.netty.bootstrap.ServerBootstrap;
import io.netty.buffer.PooledByteBufAllocator;
import io.netty.channel.Channel;
import io.netty.channel.ChannelInitializer;
import io.netty.channel.ChannelOption;
import io.netty.channel.ChannelPipeline;
import io.netty.channel.EventLoopGroup;
import io.netty.channel.nio.NioEventLoopGroup;
import io.netty.channel.socket.SocketChannel;
import io.netty.channel.socket.nio.NioServerSocketChannel; 
import io.netty.util.internal.SystemPropertyUtil; 
import l1j.server.network.Netty.InProtocolHandler;
import l1j.server.network.Netty.OutProtocolHandler;
import l1j.server.network.Netty.PacketDecoder; 
import l1j.server.network.Netty.PacketEncoder; 
 
  
ServerBootstrap , Channel 변수 추가  

private static ServerBootstrap sb;
private static Channel channel; 
 
  
startGameServer() 함수 내부 수정 및 추가 mina 관련 부분은 삭제 또는 주석처리해주세요 

try {
/**클라연결 쓰레드*/
EventLoopGroup bossGroup = new NioEventLoopGroup(1);
  
/**io처리 쓰레드 (쓰레드 : cpu core * 2) */
EventLoopGroup workerGroup = new NioEventLoopGroup(Math.max(1, SystemPropertyUtil.getInt("io.netty.eventLoopThreads",
Runtime.getRuntime().availableProcessors() * 2)));
sb = new ServerBootstrap();
sb.group(bossGroup, workerGroup)
.channel(NioServerSocketChannel.class)
.childHandler(new ChannelInitializer<SocketChannel>(){//childHandler
@Override
protected void initChannel(SocketChannel ch)
throws Exception {
ChannelPipeline p = ch.pipeline();
p.addLast("decode", new PacketDecoder());
p.addLast("encoder", new PacketEncoder());
p.addLast(new OutProtocolHandler(), new InProtocolHandler());
}
});
/**
* 각종 설정등은 해당서버 와 컴퓨터 환경에따라 달라질수있으므로 
* 부수적인 부분은 모두 생략하겠습니다.
**/
sb.option(ChannelOption.TCP_NODELAY, true); 
sb.option(ChannelOption.SO_KEEPALIVE, false); 
sb.option(ChannelOption.SO_BACKLOG, 512);
  
/**포트 번호 설정 및 오픈*/
channel = sb.bind(Config.GAME_SERVER_PORT).sync().channel();
  
} catch (InterruptedException e) {
 e.printStackTrace();
}  
  
  
 
LineageClient.java   
import 추가

import io.netty.buffer.ByteBuf; 
import io.netty.channel.Channel; 
  
  
적당한 위치에 추가, LineageEncryption 부분은 리니지 암호화 클래스이며 사용하시는게 다르면 그에 맞게 수정해주시면됩니다.

public Channel channel;
public LineageEncryption le; 
  
LineageClient 생성자 부분은 이미 있는걸 수정하셔도 되고 각팩에 알맞게 수정하시기바람니다. 
추가되는부분은 channel = _channel;, le = key; 부분입니다.

/**
 * LineageClient 생성자 
 * @param session
 * @param key
 */
public LineageClient(Channel _channel, LineageEncryption key){
channel = _channel;
le = key;
if (Config.AUTOMATIC_KICK > 0) {
observer.start();
}
packetHandler = new PacketHandler(this);
_threadPool.execute(hcPacket);
_threadPool.execute(movePacket); 

  
 
sendPacket 함수 수정 

/** 
 * 패킷 전송
 * @param bp
 */
public synchronized void sendPacket(ServerBasePacket bp){
try{
channel.writeAndFlush(bp);
} catch (Exception e) {}
}
   출처 투데이

번호 제목 글쓴이 날짜 조회 수
781 eva팩 [1] file bul48 2018.07.08 155
780 구버전 2.0 +6.5 (컴파일 까지 오류없는 팩) [3] file bul48 2018.07.08 413
779 1.63 순정버전외 씨툴접속기 [1] file 키티햄볶아 2018.06.09 638
778 [신버전] 3월 서버용팩 [3] file 사우스페리 2018.06.08 494
777 3.63 클라 + 서버팩 +접속기 통팩 입니다 7-7 file 경기도광주 2018.06.07 218
776 3.63 클라 + 서버팩 +접속기 통팩 입니다 7-6 file 경기도광주 2018.06.07 26
775 3.63 클라 + 서버팩 +접속기 통팩 입니다 7-5 file 경기도광주 2018.06.06 17
774 3.63 클라 + 서버팩 +접속기 통팩 입니다 7-4 file 경기도광주 2018.06.06 17
773 3.63 클라 + 서버팩 +접속기 통팩 입니다 7-3 file 경기도광주 2018.06.06 7
772 3.63 클라 + 서버팩 +접속기 통팩 입니다 7-2 file 경기도광주 2018.06.06 21
771 3.63 클라 + 서버팩 +접속기 통팩 입니다 7-1 [1] file 경기도광주 2018.06.06 808
770 1.38 팩 (팩 수정 내용) [1] file 경기도광주 2018.06.01 302
769 보유하고 있는 3.80 팩 입니다 내용 필독 file 경기도광주 2018.06.01 591
768 0805 접속기 만들기( 퍼온거에용) [3] file 경기도광주 2018.06.01 229
767 아보카도 수정 [2.0 캐스톨 버전] 본섭지향 [13] file 아보카도 2018.05.29 550
766 2.0 sp 디아블로 서버팩 file 경기도광주 2018.05.27 171
765 2.0 디아블로 서버 클라 4-4 file 경기도광주 2018.05.27 46
764 2.0 디아블로 서버 클라 4-3 file 경기도광주 2018.05.27 65
763 2.0 디아블로 서버 클라 4-2 file 경기도광주 2018.05.27 21
762 2.0 디아블로 서버 클라 4-1 file 경기도광주 2018.05.27 117
» Netty 4.1.11 최신 버전 적용하기 file 검은손 2018.04.21 289
760 SP(순정 버전) file 검은손 2018.04.21 290
759 요기요서버 팩 file 검은손 2018.04.21 175
758 구버전 2.0 +6.5 file 검은손 2018.04.16 223
757 180403 최신 ㅈㅅㄱ file MrBlack 2018.04.16 333
756 리니지 로컬접속기(문소프트) file 늑대1 2018.04.11 893
755 Linall _17.10.11 7z - 0809패치 [3] file 직녀 2018.04.11 145
754 신버전 요기요 서버팩 file 직녀 2018.04.11 168
753 신버전 EVA 160809 에바 8월 기본안정화팩 file 직녀 2018.04.11 151
752 ctool 파일 file 몰라도돼지야 2018.04.10 67
751 1.63 파일 file 몰라도돼지야 2018.04.10 159
750 신버전]] EVA0805를 직접수정한 로봇스킬사용 및 기타 수정 버전 [1] file 직녀 2018.04.03 257
749 구버전 [ SP팩] v7 Final / 구축파일 -1.63DB file 직녀 2018.04.03 440
748 코어발라카스 레이드팩 file 직녀 2018.04.03 57
747 3.80 패치파일 file 다크GM 2018.03.31 184
746 2.8 팩 [1] file GEACHOBO 2018.03.26 282
745 1.38 옆집펌 [1] file 리치 2018.03.21 210
744 1.63구버전 린스톤 [4] file tlsrhkddms 2018.02.26 457
743 20171011 일자수정본 코어팩!!(내영)이것도투데이머시기에서퍼옴 [3] file 카이어 2018.02.24 494
742 170901 최신 eva팩(설명) 투데이머시기에서 가져옴!! [1] file 카이어 2018.02.24 485
741 싱글리니지 file jjukyu 2018.02.23 1116
740 3.80 에바 로봇스킬 팩 [2] file 뺘우뱌 2018.02.22 1282
739 리니지 에바팩~!! [4] file lovedong 2018.02.03 562
738 2.0 +6.5 통합 팩 file lovedong 2018.02.03 247
737 아기쿠우 11차 뽕데스 팩 올려봅니다 file 김차익이 2018.02.01 208
736 2.8 호꾸&아가씨 운영했던 팩 [1] file GEACHOBO 2018.01.23 407
735 1223 클라이언트 file 검은손 2018.01.23 124
734 0127 버전 file 검은손 2018.01.23 59
733 2.7 리버전 1062Ver file GEACHOBO 2018.01.18 375
732 2.0 디아팩 [2] file dssdkwk 2018.01.15 218