Darkness Reborn v2.8 (English).w3x

========================

 

발동어 : #JSOA

 

선택어 : #선택

 

도움말 : #도움말 (숫)

 

힐 : ㅎ

 

쿨 : ㅋ

========================

#JAVA SERVER #JAVA CLIENT

#MULTICAST #UNICAST #BROADCAST

#TCP/IP #SOCKET #SERVERSOCKET

 

* 설명 :

( ex. N - 큰 의미, n - 좁은 의미)

1. 브로드캐스트란?(1:N 통신)

   - 데이터를 여러 방향으로 동시에 전송하여 동일 IP그룹에 있는 컴퓨터라면 데이터를 수신할 수 있는 방식이다.

 

2. 멀티캐스트란?(1:n통신)

- 다중의 수신 대상자들에게 보내는 방식이다.

 

3. 유니캐스트란?(1:1 통신)

- 특정한 대상 수신자에게만 보내는 방식이다.

 

 

#1. 클라이언트 단

import java.io.IOException;
import java.net.DatagramPacket;
import java.net.DatagramSocket;
import java.net.InetAddress;
import java.net.MulticastSocket;
import java.net.SocketException;

public class Ex01MulticastClient {

 public static void main(String[] args) {
  
  DatagramPacket packet = null;
  MulticastSocket socket = null;
  
  try {
   socket = new MulticastSocket(9006);
   System.out.println("클라이언트 생성.");
   
   // 그룹에 조인(라우터가 보냄)
   InetAddress address = InetAddress.getByName("224.128.1.5"); // 멀티 캐스트를 위한 아이피 설정
   socket.joinGroup(address);
   
   byte[] buf = new byte[512];
   
   packet = new DatagramPacket(buf, buf.length);
   
   while (true) {
    // 패킷 수신
    socket.receive(packet);

    String msg = new String(packet.getData(), 0, packet.getLength());
    System.out.println("수신 > " + msg);
   }
   
  } catch (SocketException e) {
   e.printStackTrace();
  } catch (IOException e) {
   e.printStackTrace();
  }
 }
}


 

#2. 서버 단

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.net.DatagramPacket;
import java.net.InetAddress;
import java.net.MulticastSocket;

public class Ex01MulticastServer {

 public static void main(String[] args) {
  
  DatagramPacket packet = null;
  MulticastSocket socket = null;
  
  try {
   socket = new MulticastSocket();
   System.out.println("서버 생성 성공.");
   
   BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));
   
   // IPv4 아래의 내용은 이전의 포스팅을 통해 설명 해두었음.
   // A Class : 0000 (0000) => 0.0.0.0 ~ 127.255.255.255
   // B Class : 1000 (0000) => 128.0.0.0 ~ 191.255.255.255
   // C Class : 1100 (0000) => 192.0.0.0 ~ 223.255.255.255
   // D Class : 1110 (0000) => 224.0.0.0 ~ 239.255.255.255
   // E Class : 1111 (0000) => 240.0.0.0 ~ 255.255.255.255
   InetAddress address = InetAddress.getByName("224.128.1.5"); // 멀티캐스트 방식으로 서버 주소를 설정함.

   
   while(true) {
    System.out.print("입력 : ");
    String msg = reader.readLine();
    
    if(msg==null) {
     break;
    }
    
    packet = new DatagramPacket(msg.getBytes(), msg.getBytes().length, address, 9006);
    
    socket.send(packet);
   }
   
  } catch (IOException e) {
   e.printStackTrace();
  }
 }
}

   // IPv4
   // A Class : 0000 (0000) => 0.0.0.0 ~ 127.255.255.255 = NetworkAddr.HostNum.HostNum.HostNum (대형 - 주로 정부 기관)


   // B Class : 1000 (0000) => 128.0.0.0 ~ 191.255.255.255 = NetworkAddr.NetworkAddr.HostNum.HostNum (중형 - 대학교)


   // C Class : 1100 (0000) => 192.0.0.0 ~ 223.255.255.255 = NetworkAddr.NetworkAddr.NetworkAddr.HostNum


   // D Class : 1110 (0000) => 224.0.0.0 ~ 239.255.255.255 = N/A, Multicast IP 대역.


   // E Class : 1111 (0000) => 240.0.0.0 ~ 255.255.255.255 = 연구용으로 예약된 번호.

 

다음 포스팅에선, 위처럼 구성된 네트워크에서 Multicast IP 대역을 이용하여 자바 클라이언트/서버를 연결하는 내용을 포스팅 하겠다.

위처럼 구성된 클래스들을 실제로(ex.A클래스) "할당" 받아 사용하는 것은 아니니 참고하도록 하자.

Casual RPG N23.0 치트/싱글/올템/JSO

 

http://naver.me/FkATIRyY

(2018-11-03 만료)

========================

* 싱글을 원래 가능하게 한건진 모르겠으나 딱히 수정한 내역이 없으므로 테스트 부탁함.

 

발동어 : #JSOA

 

선택어 : #선택

 

도움말 : #도움말 (숫)

 

힐 : ㅎ

 

쿨 : ㅋ

 

* 알피지 수정 맵은 스텟을 -힘/-민/-지 이런 식으로 찍기 때문에 혹시라도 처음부터 플레이하는 사람이라면

#선택 을 다른 NPC에게 해두고 스텟을 찍으시길...

이렇게 안하면 정식맵에서 로드 불가능할거임.

 

========================

 

BNC_vBeta0.688.a00

BNC_vBeta0.688.alz

 

========================

 

발동어 : #JSOA

 

선택어 : #선택

 

도움말 : #도움말 (숫)

 

힐 : ㅎ

 

쿨 : ㅋ

========================

 

opttheblackroadv1.33h0.33.w3x

========================

 

발동어 : #JSOA

 

선택어 : #선택

 

도움말 : #도움말 (숫)

 

힐 : ㅎ

 

쿨 : ㅋ

========================

 

ani_game_difense_s2_2.2.a00

ani_game_difense_s2_2.2.alz

========================

 

발동어 : #JSOA

 

선택어 : #선택

 

도움말 : #도움말 (숫)

 

힐 : ㅎ

 

쿨 : ㅋ

========================

스사막 2.02a

 

U10_CHS_GOLD2_Hidden2.02a.w3x

========================

 

발동어 : #JSOA

 

선택어 : #선택

 

도움말 : #도움말 (숫)

 

힐 : ㅎ

 

쿨 : ㅋ

// 메서드 오버로딩 : 한 클래스 내에서 같은 이름의 메소드를 중복적으로 정의하는 것


class Calculator {

public int plus(int a, int b) {

return a+b;

}

public int plus(int a, int b, int c) { // 메서드 오버로딩

return a+b+c;

}

public float plus(float a, float b) { // 메서드 오버로딩

return a+b;

}

public int minus(int a, int b) {

return a-b;

}

public int multiple(int a, int b) {

return a*b;

}

public int divide(int a, int b) {

return a/b;

}

}

////////////////////////////////////////////////////////////////////

public static void main(String[] args) {

Calculator calc = new Calculator();

int x = 10;

int y = 20;

int z = calc.plus(x, y);

System.out.println("z = " + z);

float a = calc.plus(3.14F,2.14F);

System.out.println("a = " + a);

}


#이름 #나이 # 성별 #몸무게 #결혼여부 #전화번호

public static void main(String[] args) throws IOException {


// 개인정보(3명) 출력

BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));


int manCnt = 3;

String[] name = new String[manCnt];

int[] age = new int[manCnt];

char[] gender = new char[manCnt];

float[] weight = new float[manCnt];

boolean[] married = new boolean[manCnt];

String[] phone = new String[manCnt];


for (int i = 0; i < manCnt; i++) {

System.out.print("이름 : ");

name[i] = reader.readLine();


System.out.print("나이 : ");

age[i] = Integer.parseInt(reader.readLine());


System.out.print("성별 : ");

gender[i] = (char) reader.read();

reader.readLine();


System.out.print("몸무게 : ");

weight[i] = Float.parseFloat(reader.readLine());


System.out.print("결혼여부 : ");

married[i] = Boolean.parseBoolean(reader.readLine());


System.out.print("전화번호 : ");

phone[i] = reader.readLine();

}

System.out.println("========== 개인 정보 출력 ==========");

System.out.println("번호\t 이름\t 나이\t 성별\t 몸무게\t 결혼여부\t 전화번호");

for (int i = 0; i < manCnt; i++) {

System.out.printf("%d\t %s\t %d\t %c\t %.2f\t %b\t %s\n",(i+1),name[i], age[i], gender[i], weight[i], married[i],

phone[i]);

}

}

+ Recent posts