빠르고 안정적이며 쉬운 Java용 UDP 메시징. 게임용으로 설계되었습니다.
JFastNet은 패킷 손실에 대한 내성이 있으며 올바른 방식으로 사용하면 나쁜 네트워크 상태에서도 플레이어에게 원활한 네트워크 게임 경험을 제공할 수 있습니다.
이 라이브러리의 API는 변경될 수 있습니다.
POM에 대한 종속성:
< dependency >
< groupId >com.jfastnet</ groupId >
< artifactId >jfastnet</ artifactId >
< version >0.3.8</ version >
</ dependency >
다음 코드는 서버-클라이언트 통신의 중요한 부분을 보여줍니다.
Server server = new Server ( new Config (). setBindPort ( 15150 ));
Client client = new Client ( new Config (). setPort ( 15150 ));
server . start ();
client . start ();
client . blockingWaitUntilConnected ();
server . send ( new PrintMessage ( "Hello Client!" ));
client . send ( new PrintMessage ( "Hello Server!" ));
HelloWorld.java의 전체 샘플 코드를 보려면 클릭하세요.
문서화 작업은 아직 진행 중입니다.
처음에 찾아야 할 가장 중요한 클래스는 Config
및 Message
클래스입니다. JavaDoc은 라이브러리의 기본 구성 가능성을 제공해야 합니다.
현재 신뢰할 수 있는 방식으로 메시지를 보내는 데 사용할 수 있는 두 가지 방법이 있습니다. 물론 메시지를 신뢰할 수 없게 보내는 것도 선택 사항입니다.
ACK_PACKET
으로 설정된 신뢰성 모드의 메시지 수신자는 메시지 수신 즉시 확인 패킷을 상대방에게 보냅니다. 이전에 언급한 메시지를 보낸 사람이 확인 패킷을 받지 못하는 한 메시지를 계속 다시 보냅니다.
기인하다 | 값 |
---|---|
믿을 수 있는 | 예 |
주문하다 | 아니요 |
SEQUENCE_NUMBER
로 설정된 신뢰성 모드의 메시지 수신자는 메시지가 예상 순서대로 도착하는 한 아무 작업도 수행하지 않습니다. 그러나 예상보다 큰 ID를 가진 메시지가 수신되면 수신자는 메시지 처리를 중지하고 RequestSeqIdsMessage
를 상대방에게 보냅니다. 필요한 모든 메시지가 수신될 때까지 처리가 계속되지 않습니다.
기인하다 | 값 |
---|---|
믿을 수 있는 | 예 |
주문하다 | 예 |
오버헤드가 적고 주문한 배송이 보장되므로 일반적으로 시퀀스 번호를 사용하는 것이 좋습니다.
Maven을 사용하여 JFastNet을 구축합니다.
mvn clean install
Kryo는 JFastNet에서 사용되는 기본 직렬 변환기이며 함께 작업하는 것이 즐겁습니다! 이 멋진 라이브러리에 정말 감사드립니다!
Project Lombok도 언급할 가치가 있습니다. Java 작업을 훨씬 더 편안하게 만들고 코드가 더 깔끔해 보이기 때문입니다. 아직 가지고 있지 않다면 확인해 보세요.
이슈 페이지에 이슈를 게시하거나 다른 문의사항이 있으면 [email protected]으로 이메일을 통해 저에게 연락하세요.