inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

묻고 답해요

173만명의 커뮤니티!! 함께 토론해봐요.

수업중 궁금한 점이 있어서 질문드립니다.

미해결

[C++과 언리얼로 만드는 MMORPG 게임 개발 시리즈] Part4: 게임 서버

#include "pch.h" #include <thread> #include <atomic> #include <mutex> #include <windows.h> mutex m; queue<int32> q; HANDLE handle; void Producer() { while (true) { { unique_lock<mutex> lock(m); q.push(100); } ::SetEvent(handle); std::this_thread::sleep_for(100ms); } } void Consumer() { while (true) { ::WaitForSingleObject(handle, INFINITE); ::ResetEvent(handle); unique_lock<mutex> lock(m); if (!q.empty()) { int32 data = q.front(); q.pop(); cout << data << endl; } } } int main() { handle = ::CreateEvent(NULL, TRUE, FALSE, NULL); std::thread t1(Producer); std::thread t2(Consumer); t1.join(); t2.join(); ::CloseHandle(handle); return 0; } 에서 WaitForSingleObject이후에 signal이 auto가 아니라면 ResetEvent를 따로 적어주어야 한다 하셨는데, ResetEvent가 호출되기 전에 다른 쓰레드에 있는 SetEvent가 호출되면 어떻게 되는건가요?

  • 네트워크
  • MMORPG
  • windows-server
박건우 댓글 2 좋아요 0 조회수 131

프로토콜 헤더 암기

해결됨

이해하면 인생이 바뀌는 네트워크 프로그래밍

안녕하세요 선생님~~ 강의 너무 잘 보고있습니다ㅎㅎ 근데 프로토콜 헤더는 꼭 전부 외워서 작업을 해야하나요?? 그리고 선생님은 그걸 안보고 프로그래밍을 하실 수 있나요? 조금 개인적인 질문이라 실례가 될수 있는데요 알려주시면 감사드리겠습니다ㅎㅎ 감사합니다.

  • 네트워크
  • winpcap
  • npcap
  • tcpip
  • vc++
아무로 댓글 1 좋아요 0 조회수 127

오목게임 구현

미해결

[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part4: 게임 서버

이 서버코드를 가지고 오목게임을 구현해보고 싶은데요 랜덤매칭을 해서 매칭이 된다면 방을 만들어서 방에서 조작하는게 맞겠죠 ? 그럼 GameRoom 은 전체 시스템에 대한 접속이라 생각하고 ( 전쳇말 등등을 위한 ) GameActualRoom 이란걸 만들어서 매칭된사람들끼리의 룸 이라고 생각하고 만들면될까요 ? ..

  • C#
  • unity
  • 네트워크
릴뭐뭐 댓글 2 좋아요 0 조회수 277

SeesionV6 코드 질문

해결됨

김영한의 실전 자바 - 고급 2편, I/O, 네트워크, 리플렉션

학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문 전에 다음을 꼭 확인해주세요. 1. 강의 내용과 관련된 질문을 남겨주세요. 2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요. (자주 하는 질문 링크: https://bit.ly/3fX6ygx) 3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요. (질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG) 질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요. ========================================= [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예/아니오) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) [질문 내용] 안녕하세요. 네트워크 프로그램6 - 자원 정리 를 복습하다가. 질문을 드립니다. 어제 네트워크 네트워크 프로그램 들을 복습하면서 혼자 만들어 보면서 따라하다가 어찌하다 보니 사진 처럼 SessionV4 필드에 private DataInputStream input; private DataOutputStream output; run()에서 객체를 생성하게 되었습니다. 그래서 이것을 코드들에 적용 시켜보자 하다가 이 코드가 나왔습니다. 그래서 질문은 이렇게 코드를 SessionV6에서 짜도 되는 지가 질문입니다. 아니면 영한님 처럼 생성자 에서 전부다 생성하고 초기화 하는게 맞는지 알고 싶습니다. 답변 부탁드립니다.

  • java
  • 네트워크
  • 객체지향
생각하는자 댓글 1 좋아요 0 조회수 179

43:06 OnRep_Owner 함수 질문

미해결

이득우의 언리얼 프로그래밍 Part3 - 네트웍 멀티플레이 프레임웍의 이해

처음 듣는 개념들이 많아서 글을 정리하며 강의를 보고 있는데, OnRep_Owner 를 Override 해서 사용할 때 Super::PostNetInit() 을 실행해야하는 이유가 있을까요? 아니면 복붙하는 과정에서 일어난 단순 오타인가요? 제가 수업을 놓친 건지 헷갈려서 질문 남깁니다 밑에 같은 질문이 있었네요 오타인 거 확인했습니다. 이번 강의도 감사합니다

  • unreal-engine
  • 네트워크
  • 언리얼-c++
Sejun Jo 댓글 2 좋아요 0 조회수 103

수강연장 혹시 가능할까요?

미해결

AWS Certified Solutions Architect - Associate 자격증 준비하기

- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요. 좋은 강좌 감사합니다 업무에바빠 시험응시를 미루고있습니다 혹시 연장해주시면 감사하겠습니다.

  • 네트워크
  • aws
sown108 댓글 2 좋아요 0 조회수 90

TCP 연결이 끊길 때의 클라이언트, 서버, 자바 애플리케이션에서의 흐름

해결됨

김영한의 실전 자바 - 고급 2편, I/O, 네트워크, 리플렉션

[질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예) [질문 내용] 질문자 OS: mac 영상 기준 위치: 11분 30초 ~ 강의록 기준 위치: 7. 네트워크 - 프로그램1.pdf p.29 ~ 질문 상황: 클라이언트 프로그램을 인텔리제이의 Stop 버튼으로 종료할 때 의 흐름 안녕하세요. 위 상황에 대해서 제가 정리한 흐름이 맞는지 궁금해서 확인차 질문글 남깁니다. 1 ~ 4번의 전체적인 흐름 이 맞는지와 2번의 자동적으로(반사적으로) , 3번의 주체적으로 라는 표현이 적절한지 궁급합니다. 제가 생각한 자동적으로 는 : FIN을 받으면 내부적으로 곧바로 TCP 수신 버퍼가 닫힌다. 제가 생각한 주체적으로 는: if (FIN) then close TCP 수신 버퍼 와 같이 FIN을 조건문처럼 감지하고 수신 버퍼를 닫는다. 입니다. 제가 생각한 흐름 TCP 연결이 끊길 때 클라이언트 OS가 서버 OS에 FIN 패킷을 보내고, 본인의 출력 스트림을 닫는다. 서버 OS는 FIN 패킷을 받으면 자동적으로(반사적으로) TCP 수신 버퍼가 닫힌다. 서버 OS가 TCP 수신 버퍼가 닫힌 것을 주체적으로 인식해서 " readUTF() 에게 이 사실을 알려줘야지!" 라고 하면서 readUTF() 의 블로킹을 깨우는 동시에, EOF 신호도 보낸다. readUTF() 는 서버 OS에 의해 깨어나는 동시에 EOF 신호를 감지하게 되고 즉시 EOFException 을 던진다.

  • java
  • 네트워크
  • 객체지향
dev.rudevico 댓글 1 좋아요 0 조회수 170

점프 구현

미해결

[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part4: 게임 서버

안녕하세요 이번에 서버 구현 강의를 듣고 유니티를 연동하고 , 캐릭터에 점프 애니메이션을 구현하려고 하는데, 점프를 위한 패킷을 만들어야 하나요 ? 패킷에는 어떤내용이 들어갈까요 ? , isJumped 를 bool 형으로 만들면 될까요 ?

  • C#
  • unity
  • 네트워크
릴뭐뭐 댓글 2 좋아요 0 조회수 167

수강 기간 연장 문의 드립니다

미해결

AWS Certified Solutions Architect - Associate 자격증 준비하기

안녕하세요. 좋은 강의 너무 감사드립니다. 재시험을 위해서 한번 더 전체 학습을 진행하고싶은데, 수강 기간 연장을 부탁드려도 될까요? 감사합니다.

  • 네트워크
  • aws
aloemixed 댓글 2 좋아요 0 조회수 76

데이터베이스를 깊게 배우기 위한 책 추천을 받을 수 있을까요?

해결됨

김영한의 실전 자바 - 고급 2편, I/O, 네트워크, 리플렉션

[질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (아니오) [질문 내용] 안녕하세요, 영한님. 해당 강의 후반부에서 데이터베이스를 깊게 학습하는 것이 좋다고 하셨는데 혹시 이를 위한 책을 추천해주실 수 있을까 해서 글을 남겨봅니다. 제 지식 수준 기본적으로 학부에서 오라클을 기반으로 한 데이터베이스 수업을 들어서 설계, SQL 프로그래밍, 인덱스 설계(이론만), locking(이론만) 등에 대해서는 알고 있는 상태입니다. 찾아봤던 책 목록 (원서) Elmasri Navathe 저자의 Fundametals of DATABASE SYSTEMS (국내도서) Real MySQL 제가 조금 찾아보면서 정리한 리스트는 위 두 개의 책입니다. 위의 책 중 마음에 드는 책 아무거나 잡아서 학습할지, 또는 영한님이 따로 추천해주실 만한 책이나 학습처가 있는지 의견을 얻을 수 있을까 싶어 글 남깁니다.

  • java
  • 네트워크
  • 객체지향
dev.rudevico 댓글 2 좋아요 0 조회수 1456

IOCP 워커 스레드 순서 보장 질문 드립니다.

미해결

[C++과 언리얼로 만드는 MMORPG 게임 개발 시리즈] Part4: 게임 서버

루키스님 안녕하세요? C#서버 강에서 넘어와서 C++서버 공부하고 있습니다. C# 서버와 비교하면서 공부하다 워커 스레드 순서 보장이 궁금해서 질문 드리게 되었습니다. C# 서버에서는 Room.Flush()따위를 메인 함수의 와일루프에서 호출해서 단일 스레드로 처리하기 때문에 순서보장이 되는 것을 직관적으로 이해했습니다. 여기 예시에서는 워커스레드를 5개를 배분해주셨습니다. C# GameRoom으로 빗대면, 긴~~ 작업 Job A와, 짧은 B가 있는데 A->B 순서로 진행이 되어야 한다고 하면, 1번 워커 스레드는 먼저 들어온 A를 처리중.. 2번 워커 스레드가 이어서 들어온 B 작업을 처리.. A보다 먼저 처리 완료. 1번 워커 스레드가 처리중인 A 처리 완료.. 이렇게 B->A 순서로 처리가 될 것 같다는 생각이 들었습니다. Q1. IOCP 워커 스레드가 순서 보장이 되는지? Q2. 그럼에도 불구하고 워커스레드를 N개 하신 이유가 있을 것 같은데 C#도 그렇게 할 수 있을지? 예를 들어 Room의 처리를 1, 2, 3, 4, 5번 스레드를 파서 동시에 처리 할 수 있을지? Q3. C# 서버에서는 Room에 1개의 스레드를 배분한 특별한 이유가 있는지? 궁금합니다.

  • 네트워크
  • MMORPG
  • windows-server
mhyim 댓글 1 좋아요 0 조회수 164

회원 관리 예제4 - ObjectStream에대해서

해결됨

김영한의 실전 자바 - 고급 2편, I/O, 네트워크, 리플렉션

학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문 전에 다음을 꼭 확인해주세요. 1. 강의 내용과 관련된 질문을 남겨주세요. 2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요. (자주 하는 질문 링크: https://bit.ly/3fX6ygx) 3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요. (질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG) 질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요. ========================================= [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예/아니오) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) [질문 내용] 안녕하세요. 회원 관리 예제4 오브젝트스트림 에 대해서 복습하는데, ObjectBookRepository 클래스의 add() 에서멤버를 리스트 에 넣고, 오브젝트 안에 리스트를 넣는 방식이 저에게는 생소 하다 할까요? 이 예제 코드를 여러 번 치고 지우다 보니, 머리에 입력은 되긴 했는데. 머리에 입력이 된거지, output은 안 나오는 상황입니다. 이럴 때에는 어떻게 해야하나요? 답변 부탁 드립니다.

  • java
  • 네트워크
  • 객체지향
생각하는자 댓글 1 좋아요 0 조회수 130

개인키, 공인 인증서 폴더

미해결

풀스택을 위한 도커와 최신 서버 기술(리눅스, nginx, AWS, HTTPS, 배포까지) [풀스택 Part3]

안녕하세요 1:42 에 말씀하신 개인 키랑 공인인증서 폴더 가 무엇인가요??? 다운받은 내용이 없는데 폴더도 없습니다. 어디서 찾을수 있나요?? - 강의 영상에 대한 질문이 있으시면, 상세히 문의를 작성해주시면, 주말/휴일 제외, 2~3일 내에 답변드립니다 (이외의 문의는 평생 강의이므로 양해를 부탁드립니다.) - 강의 답변이 도움이 안되셨다면, dream@fun-coding.org 로 메일 주시면 재검토하겠습니다. - 괜찮으시면 질문전에 챗GPT 와 구글 검색을 꼭 활용해보세요~ - 잠깐! 인프런 서비스 운영(다운로드 방법포함) 관련 문의는 1:1 문의하기를 이용해주세요.

  • 네트워크
  • linux
  • docker
김정혁 댓글 1 좋아요 0 조회수 169

채팅 프로그램 콘솔출력 겹침

미해결

김영한의 실전 자바 - 고급 2편, I/O, 네트워크, 리플렉션

학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문 전에 다음을 꼭 확인해주세요. 1. 강의 내용과 관련된 질문을 남겨주세요. 2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요. (자주 하는 질문 링크: https://bit.ly/3fX6ygx) 3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요. (질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG) 질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요. ========================================= [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예/아니오) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) [질문 내용] 안녕하세요 채팅 프로그램 작성 도중 여쭤볼 게 있어 남기게되었습니다 문제 상황 위 사진은 제 콘솔출력창입니다 왼쪽사용자는 kim : hi라는 메시지를 보냈고, 오른쪽 사용자는 han: hello라는 메시지를 보냈는데요, 문제는 메시지를 보내달라는 문장과 다른 사용자가 보낸 메시지 내용이 겹친다는 것입니다 질문 위 사진은 제가 해결해보려는 시도로 static메소드를 lock을 사용해서 만들었습니다. 하지만 결과가 똑같았습니다. 해결방법이 궁금합니다! 그리고 lock을 걸어서 사용했는데 왜 결과가 똑같은지도 궁금합니다...답변해주시면 감사하겠습니다 아래는 제 코드를 보여드리겠습니다! 1.Client 메세지 보내는 부분 클래스입니다 public class ClientSecond { private static final int PORT = 12345; static Socket socket; static DataOutputStream output; static DataInputStream input; public static void main(String[] args) throws IOException { try { socket = new Socket("localhost", PORT); output = new DataOutputStream(socket.getOutputStream()); ClientReceiverSecond clientReceiverSecond = new ClientReceiverSecond(socket); Thread thread = new Thread(clientReceiverSecond); thread.start(); System.out.println("Chatting Program"); System.out.print("사용자의 이름을 입력하세요 : "); Scanner scanner = new Scanner(System.in); String name = scanner.nextLine(); output.writeUTF(name); //1.이름전송 while (true) { //System.out.print("메세지를 입력해주세요 : "); ClientOutput.printMessage(); String message = scanner.nextLine(); output.writeUTF(message); //2.메세지전송 if (message.equals("exit")) { System.out.println("채팅 프로그램을 종료합니다. "); break; } } }finally { output.close(); socket.close(); } } } 각 클라이언트에게 다른 사용자의 메세지를 보내는 클래스입니다 public class ClientReceiverSecond implements Runnable { private static Socket socket; static DataInputStream input; public ClientReceiverSecond(Socket socket){ this.socket = socket; } @Override public void run() {//다른 사용자들의 메세지 확인 try { while (true) { input = new DataInputStream(socket.getInputStream()); String other_messages = input.readUTF(); //사용자의 이름과 메시지 분리 필요 //System.out.println(other_messages); ClientOutput.printMessage(other_messages); //todo if (other_messages.equals("exit")) { System.out.println("채팅을 종료합니다. "); break; } } } catch (IOException e) { throw new RuntimeException(e); }finally { try { input.close(); } catch (IOException e) { throw new RuntimeException(e); } } } } 클라이언트와 통신하는 세션 클래스인데요 혹시 몰라서 추가로 올려보겠습니다 public class SessionSecond implements Runnable{ private Socket socket; private SessionManagerSecond sessionManagerSecond; DataInputStream input = null; DataOutputStream output = null; public SessionSecond(Socket soket, SessionManagerSecond sessionManagerSecond) { this.socket = soket; this.sessionManagerSecond = sessionManagerSecond; sessionManagerSecond.add(this); } public void send(String message) throws IOException { output = new DataOutputStream(socket.getOutputStream()); String messages[] = message.split(","); String name = messages[0]; String messagemain = messages[1]; output.writeUTF(name+" : "+messagemain); } @Override public void run() { try { input = new DataInputStream(socket.getInputStream()); //output = new DataOutputStream(socket.getOutputStream()); String name = input.readUTF(); while (true) { String message = input.readUTF(); if (message.equals("exit")) { break; } String allmesaage = name+","+message; sessionManagerSecond.call(allmesaage); } } catch (IOException e) { throw new RuntimeException(e); }finally { try { output.close(); input.close(); } catch (IOException e) { throw new RuntimeException(e); } } } }

  • java
  • 네트워크
  • 객체지향
지민 댓글 1 좋아요 0 조회수 193

세션8 우선순위 큐 pop함수의 Predicate 적용 관련 질문이 있습니다.

미해결

[게임 프로그래머 입문 올인원] C++ & 자료구조/알고리즘 & STL & 게임 수학 & Windows API & 게임 서버

pop 함수를 보면 if (right < (int)_heap.size() && predicate( heap[next], _heap[right])) 인 left와의 비교에서 나온 결과 값을 비교하는 부분에만 predicate를 적용하였는데 위에 left와 비교하는 부분은 둘 중 더 큰 값을 next에 넣는게 목적인 코드입니다. 더 작은값을 찾을때 문제가 생길 수 있을것이라 생각이 되는데 문제가 생기지 않아 의문점이 생겨 질문 드립니다. left쪽엔 predicate 비교를 하지 않아도 되는 이유가 무엇일까요?

  • c++
  • 네트워크
  • ue-blueprint
  • 게임수학
  • windows-api
서버공부중 댓글 3 좋아요 0 조회수 213

[오타 제보] 2. IO 기본1.pdf

해결됨

김영한의 실전 자바 - 고급 2편, I/O, 네트워크, 리플렉션

[오타 내용] 대상 강의록 : 2.IO 기본1.pdf 대상 위치 : p.17 최하단 부분 오타 내용 수정 전 : 예를 들어 BUFFER_SIZE가 10이라면 10만큼 모이면 wirte() 를 호출해서 ... 수정 후 : 예를 들어 BUFFER_SIZE가 10이라면 10만큼 모이면 write() 를 호출해서 ... 백준 풀 때 실행 시간 빠른 코드들은 다들 Buffered 어쩌고를 썼길래 이게 뭐지~ 하고 그냥 넘어갔던 기억이 있는데 여기서 마주하게 되어서 기쁘고 재밌네요!

  • java
  • 네트워크
  • 객체지향
dev.rudevico 댓글 2 좋아요 0 조회수 163

워드프레스가 어렵네요 ㅠㅠㅠ

미해결

풀스택을 위한 도커와 최신 서버 기술(리눅스, nginx, AWS, HTTPS, 배포까지) [풀스택 Part3]

80포트를 이미 사용중이여서 50080을 사용중인데 (iptime에서 포트포워딩 되어 80으로 들어가므로 강의 코드는 계속 그대로 써도 상관없었습니다) 워드프레스 로그인 하니까 50080포트가 사라지면서 80 포트로 되어서 로그인 페이지 처리가 안되는 것 같은데 워드프레스를 잘 모르니까 어디를 고쳐야할지 모르겠네요.. 아마 워드프레스에서 다시 서버 도메인으로 리다이렉션 시키는 부분이 있는 것 같은데 그때 80포트로 시켜버리나봐요..

  • 네트워크
  • linux
  • docker
learnlearnlearn 댓글 2 좋아요 0 조회수 193

기초편 이후로 선행되어야하는 지식

해결됨

외워서 끝내는 네트워크 핵심이론 - 응용

안녕하세요 선생님, 기초편을 들은 후 응용편으로 넘어왔는데 난이도(?)가 확 올라가서 혹시나 듣기 전에 선행해야 하는 책 또는 지식이 있다면 알려주실 수 있으실까요?

  • 네트워크
박원우 댓글 1 좋아요 0 조회수 200

수강기간 연장 부탁드립니다.

미해결

AWS Certified Solutions Architect - Associate 자격증 준비하기

수강기간 연장 부탁드립니다. 감사합니다.

  • 네트워크
  • aws
정일균 댓글 2 좋아요 0 조회수 78

도커 활용하기 (주피터 노트북 서버 만들어보기)에서 질문있습니다

미해결

풀스택을 위한 도커와 최신 서버 기술(리눅스, nginx, AWS, HTTPS, 배포까지) [풀스택 Part3]

15:15 에 로컬호스트는 사실 자기 서버라고 하셨는데 자기 서버인데 왜 localhost로 3306 열려져 있는 포트를 찾지 못했던 것인지 잘 모르겠습니다.

  • 네트워크
  • linux
  • docker
learnlearnlearn 댓글 1 좋아요 0 조회수 170

인기 태그

인프런 TOP Writers

주간 인기글