안녕하세요 강의 내용 정리에 관련해서 질문있어요
미해결
이득우의 언리얼 프로그래밍 Part3 - 네트웍 멀티플레이 프레임웍의 이해
제가 강의를 들으면서 이해한 내용과 실습을 정리해서 올리려는데 저작권등의 문제가 괜찮을지 여쭤보고 싶어서요. 어느정도까지 해도 괜찮을까요??
- unreal-engine
- 네트워크
- 언리얼-c++
173만명의 커뮤니티!! 함께 토론해봐요.
미해결
이득우의 언리얼 프로그래밍 Part3 - 네트웍 멀티플레이 프레임웍의 이해
제가 강의를 들으면서 이해한 내용과 실습을 정리해서 올리려는데 저작권등의 문제가 괜찮을지 여쭤보고 싶어서요. 어느정도까지 해도 괜찮을까요??
미해결
Unity 6 혼자서 온라인 오목 게임 만들기 Unity + C# 서버 구현
혹시 보드판 이미지랑 오목 이미지들 어디서 다운 받으면 될까요?
해결됨
이해하면 인생이 바뀌는 네트워크 프로그래밍
다름 아니라 제가 인터넷을 찾아보다가 확장자를 .c 즉 c언어로 할 경우 외부 include 디렉터리와 외부 라이브러리 디렉터리를 저희가 수업에서 진행을 했던 그대로 설정을 하면 LoadNpcapDlls() 해당 함수를 사용을 하지 않아도 프로그램이 문제 없이 작동을 합니다 혹시 위에 외부 include와 라이브러리 디렉터리를 올바르게 등록을 하면 LoadNpcapDlls()함수 없이 코드를 작성해도 될까요??
미해결
김영한의 실전 자바 - 고급 2편, I/O, 네트워크, 리플렉션
안녕하세요 강사님 좋은 강의 매번 잘 듣고 있습니다. 채팅 프로그램 직접 먼저 구현해보라고 하셔서 코드를 짜봤는데요, 이후 강사님이 짜신 채팅 프로그램 코드를 보며 많이 부족하다는 것을 다시 느꼈습니다. 두 코드를 비교하며 제가 짠 클라이언트 코드 중에 잘 이해가 되지 않는 부분이 있는데요,, 우선 코드는 다음과 같습니다. package network.tcp.chat; //... import static util.MyLogger.log; public class ChatClient { private static final int PORT = 12345; public static void main(String[] args) throws IOException, InterruptedException { try (Socket socket = new Socket("localhost", PORT); DataInputStream input = new DataInputStream(socket.getInputStream()); DataOutputStream output = new DataOutputStream(socket.getOutputStream())) { log("채팅 소켓 연결: " + socket); // 채팅 메시지 송.수신 분리 ReadHandler readHandler = new ReadHandler(input); WriterHandler writerHandler = new WriterHandler(output); Thread clientReadThread = new Thread(readHandler, "clientReadHandler"); Thread clientWriteThread = new Thread(writerHandler, "clientWriteHandler"); clientWriteThread.start(); clientReadThread.start(); clientWriteThread.join(); clientReadThread.join(); } } } package network.tcp.chat; //.. import static util.MyLogger.log; public class ReadHandler implements Runnable { private final DataInputStream input; public ReadHandler(DataInputStream input) { this.input = input; } @Override public void run() { while(true) { // 서버로부터 문자 받기 String received = null; try { received = input.readUTF(); } catch (IOException e) { throw new RuntimeException(e); } log("server -> client: " + received); } } } package network.tcp.chat; //.. import static util.MyLogger.log; public class WriterHandler implements Runnable { private final DataOutputStream output; public WriterHandler(DataOutputStream output) { this.output = output; } @Override public void run() { Scanner scanner = new Scanner(System.in); while(true) { System.out.print("전송 문자: "); // 서버에 문자 보내기 String toSend = scanner.nextLine(); try { output.writeUTF(toSend); } catch (IOException e) { throw new RuntimeException(e); } log("client -> server: " + toSend); if (toSend.equals("exit")) { break; } } } } 물론 제 코드를 작동시켜보면 1) EOFException도 발생하고 2) 자원 정리 코드도 따로 없습니다 다만 궁금한 것은 main 에 다음의 두 코드를 넣어야 채팅 프로그램이 동작한다는 것입니다. clientWriteThread.join(); clientReadThread.join(); 앞서 보여주신 간단한 server-client 예제, 강사님이 짜신 채팅 프로그램 코드 모두 Thread.join() 메소드를 전혀 사용하지 않았는데 왜 제 코드에서는 두 코드를 넣어야 채팅 프로그램이 끊기지 않고 동작하는 것인지 자문을 구해도 될까요?ㅠ 감사합니다..!
미해결
[C++과 언리얼로 만드는 MMORPG 게임 개발 시리즈] Part4: 게임 서버
protobuf를 이것저것 연습하는 중에 문제가 생겨 질문드립니다. 위처럼 int32만 사용했을 경우에는 정상적으로 빌드가 되지만, 이런식으로 string으로 바꾸었을 때에만 이러한 오류가 발생합니다. 버전도 일치하고 링크도 제대로 되어있는 듯 한데 심볼이 없다라고 하는데 어떤 이유인지 궁금합니다.
미해결
이득우의 언리얼 프로그래밍 Part3 - 네트웍 멀티플레이 프레임웍의 이해
캐릭터 클래스는 처음부터 캡슐, 메시, 캐릭터 무브먼트 컴포넌트가 있는데요. 무브먼트 컴포넌트가 클라이언트와 동기화시키고 보정하는 기능이 있는 건 알 것 같기도 한데 이게 mesh도 영향을 받나요? 리슨 서버에선 클라이언트 소유 캐릭터의 mesh를 강제로 이동시키기나 add relative rotation 해도 default 값에서 변하지 않고 고정됩니다. 반면에 서버 환경에서 서버 소유 캐릭터나 클라이언트 환경에서 클라 소유 캐릭터의 mesh를 이동/회전 시키면 일단 적용은 됩니다. (다만 동기화는 안됩니다.) 리슨서버에서 클라이언트 소유 캐릭터의 mesh를 transform 수정 가능하게 할 방법은 아예 없나요?
미해결
AWS Certified Solutions Architect - Associate 자격증 준비하기
- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요. 직장다니면서 공부하고 실습도 하다보니 생각보다 진도가 잘 나가질않네요. 강의는 다듣고 이제 실전문제풀이를 들을려고 하는데 수강이 만료될거같아요. 염치 불고하고 조금만 더 연장이 가능할까요?
해결됨
김영한의 실전 자바 - 고급 2편, I/O, 네트워크, 리플렉션
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문 전에 다음을 꼭 확인해주세요. 1. 강의 내용과 관련된 질문을 남겨주세요. 2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요. (자주 하는 질문 링크: https://bit.ly/3fX6ygx) 3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요. (질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG) 질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요. ========================================= [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예/아니오) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) [질문 내용] 안녕하세요. 또 이해가 안되서 질문 을 올립니다. 영한님 ConstructV1코드를 보면 declaredMethods()를 쓰면 모든 메서드 들을 보여주신다고 하였는데.. 다시 확인해보니 디폴트 메서드 및 프로텍티트 메서드가 출력이 안된것을 확인을 할 수가 있었습니다. 그래서 전에 학습했던 코드 MethodV1 코드를 돌려본 결과 여기에서는 프로텍티드 및 디폴트 메서드도 보여주는것을 확인을 햇습니다. getConstructors()는 부모꺼 뺀 public 메서드만 호출 가능, getDeclaredConstructors()는 모든 메서드를 호출하다고 했는데 디폴트및 프로텍트 메서드가 안나오니 의문점이 생기네요. 이것도 알려주시면 감사하겠습니다. 답변 부탁 드립니다.
해결됨
김영한의 실전 자바 - 고급 2편, I/O, 네트워크, 리플렉션
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문 전에 다음을 꼭 확인해주세요. 1. 강의 내용과 관련된 질문을 남겨주세요. 2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요. (자주 하는 질문 링크: https://bit.ly/3fX6ygx) 3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요. (질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG) 질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요. ========================================= [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예/아니오) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) [질문 내용] 안녕하세요. 세션13 - '필드 탐색과 값 변경' 복습을 하다가 의문점이 생겨서 질문을 드립니다. 영한 님이 리플렉션을 이용해서 name의 filed 값을 변경 하는 것을 보고 'final로 변경하면 안되겠지.'라는 생각을 하게 되었습니다. 그래서 userTest를 만들어서 name을 final로 변경해 보고 실험해보았습니다.(당연히 예외 터질 것을 예상 하고요) 근데 왠걸? 저의 예상과는 다르게 결과가 나오는 것을 보고, "......" 밖에 말이 안나 옵니다. 이게 코드 결과입니다. 왜 이렇게 나오는지 설명해 주실 수 있으신가요? (내용 수정) 답변 부탁 드립니다.
미해결
이득우의 언리얼 프로그래밍 Part3 - 네트웍 멀티플레이 프레임웍의 이해
안녕하세요 강사님! 항상 열심히 강의를 보며 공부하고 있습니다. 6강 예제를 따라하던 도중 문제가 생겨 해결해보려했으나 도저히 방도가 안보여 질문드립니다. 비주얼 스튜디오에서 빌드로 실행하면 모두 정상적으로 작동이 되는 것 같습니다. 하지만 에디터에서 실행하거나, 배치파일로 실행하거나, 에픽 런쳐로 실행하거나, 프로젝트파일로 실행시킬 때 모두 분수대가 회전되지않습니다.(분수대뿐만이 아닌 모든 ab네트워크로그 매크로도 나오지 않습니다. 로테이트레이트값도 아예 보이지 않습니다.) 라이브 코딩 후에는 분수대도 잘 회전되고 매크로도 나오나, 클라이언트에서는 분수대가 여전히 회전하지않고, YAW값 매크로도 나오지 않습니다.
미해결
CloudNet@ - Amazon EKS 기본 강의
강의 연장 부탁드립니다.
미해결
AWS Certified Solutions Architect - Associate 자격증 준비하기
제가 일에 집중하느라 제대로된 강의 수강을 이제서야 합니다ㅠㅠ 연장해주시면 감사하겠습니다.
미해결
AWS Certified Solutions Architect - Associate 자격증 준비하기
안녕하세요 강사님 ! 좋은 강의 감사합니다! 부득의 하게 시간내에 강의를 다 못 들을 것 같아서 연장 부탁드리겠습니다 ㅠㅠ!
미해결
김영한의 실전 자바 - 고급 2편, I/O, 네트워크, 리플렉션
[질문 템플릿] 1. 강의 내용과 관련된 질문인가요? 예 [질문 내용] 언제나 강의를 잘 듣고 있습니다 감사합니다! 다름이 아니라 제가 개념이 좀 흔들려서 이렇게 문의 드려봅니다..! 네트워크를 통해 TCP/IP로 통신을 하는 상황에서 MAC주소가 없어도 IP의 주소만 가지고 통신을 할 수 있는게 ARP를 사용해서 서버의 MAC 주소를 찾아낼 수 있어서라는데 이게 맞는건가요? 확실하게 알고자 질문드려봅니다!
미해결
이득우의 언리얼 프로그래밍 Part3 - 네트웍 멀티플레이 프레임웍의 이해
클라이언트에서는 빙의를 하면서 오너쉽을 설정하는 것이 아니라 Owner값이 서버와 동기화 되는 것이라고 이해했습니다. 그리고 서버에서 Owner값이 바뀌면 클라이언트의 OnRep_Owner가 실행되면서 클라이언트의 Owner값이 설정된다고 이해했습니다. 그래서 Super의 OnRep_Owner가 실행되기전에도 로그를 찍어봤는데, 그때도 이미 오너가 설정된것으로 로그가 출력되었고, 코드를 확인해보니 Actor의 OnRep_Owner는 내용이 없더라구요..? 그러면 정확히는 OnRep_Owner에서 Owner값이 동기화 되는것은 아니라는 건가요? 그리고 아래 로그와 같이 PostNetInit가 실행되고 BeginPlay 까지 실행된 이후에 PostNetInit가 한번 더 호출되는 이유는 무엇인지 궁금합니다. LogABNetwork: [CLIENT1] AABCharacterPlayer::OnRep_Owner [ABCharacterPlayer_0 Begin] LogABNetwork: [CLIENT1] AABCharacterPlayer::OnRep_Owner [Owner: BP_ABPlayerController_C_0] LogABNetwork: [CLIENT1] AABCharacterPlayer::OnRep_Owner [Owner: BP_ABPlayerController_C_0] LogABNetwork: [CLIENT1] AABCharacterPlayer::OnRep_Owner [End] LogABNetwork: [CLIENT1] AABCharacterPlayer::PostNetInit [Begin] LogABNetwork: [CLIENT1] AABCharacterPlayer::PostNetInit [End] LogABNetwork: [CLIENT1] AABGameState::OnRep_ReplicatedHasBegunPlay [Begin] LogABNetwork: [CLIENT1] AABPlayerController::BeginPlay [Begin] LogABNetwork: [CLIENT1] AABPlayerController::BeginPlay [End] LogABNetwork: [CLIENT1] AABGameState::OnRep_ReplicatedHasBegunPlay [End] LogABNetwork: [CLIENT1] AABCharacterPlayer::PostNetInit [Begin] LogABNetwork: [CLIENT1] AABCharacterPlayer::PostNetInit [End]
해결됨
이득우의 언리얼 프로그래밍 Part3 - 네트웍 멀티플레이 프레임웍의 이해
c++ 에서 replicated/replicatedUsing 이나 블루프린트에서 replicated/RepNotify 설정하는것은 동기화를 반드시 보장해준다고 알고있는데요. 그래서 연결 이슈가 발생됐을 시, 보존했다가 정상 연결되면 그때 다시 데이터 보내준다고 이해했습니다. 그러면 리슨서버에 클라1이 접속되어 있고 이후 2번째 클라가 접속했을 때 이미 초기화가 끝나고 tick이 진행중이던 2개의 플레이어 캐릭터(서버,클라1)가 클라2 환경에서 simulated클라 역할로 생성되어 각각 beginplay가 진행될텐데요. 이때 리플리케이트가 켜져있는 프로퍼티나 컴포넌트 상태 등등 변경된 사항들이 복제되어 적용된 상태로 생성되는 건가요? 초기값과 다르기때문에 onRep_~~() 함수도 호출되면서?
미해결
AWS Certified Solutions Architect - Associate 자격증 준비하기
- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요. 조금만 더 연장이 가능할까요? 생각보다 듣는게 더디어 직장다니면서 보기에는 쉽지 않네요 부탁 좀 드리겠습니다...
해결됨
이득우의 언리얼 프로그래밍 Part3 - 네트웍 멀티플레이 프레임웍의 이해
어떤 액터의 현재 로컬 역할이 authority이든, Simulated 클라이언트든, Autonomous 클라이언트든 똑같이 beginPlay()와 Tick() 같은 건 일단 실행이 되는 건가요?? simulated 클라 역할인 액터는 개념적으론 로직이 수행되선 안되는데 그럼에도 beginplay(), Tick() 같은건 일단 실행이 되기때문에 if문으로 구분을 해야하는거죠?
미해결
AWS Certified Solutions Architect - Associate 자격증 준비하기
안녕하세요. 강사님 수강신청하고 정신이 없이 지내다가 다시 수강하려 보니 시간이 얼마 안 남았네요. 죄송하시만 시간 연장 좀 부탁드립니다. (강의 수강 10% 미만 이네요)
미해결
김영한의 실전 자바 - 고급 2편, I/O, 네트워크, 리플렉션
질문드립니다. SessionV6 코드의 try 구문 안에 클라이언트가 exit을 입력하면 try 구문을 탈출하게끔 하는 조건문이 있잖아요. if (received.equals("exit")) { break; } 이 조건문에 closed 플래그를 다음과 같이 함께 적어주면, if (received.equals("exit") || closed) { break; } 어자피 ShutdownHook 에서도 Session의 close() 메서드를 호출하고, closed를 true로 바꿔주니까 try 구문에서도 break가 실행될 수 있지 않나요? 그렇다면 I/O 스트림을 try-with-resources 로 설정해도 괜찮지 않나요? 제가 놓치는게 있다면 알려주시길 부탁드립니다.