inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

묻고 답해요

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

SendBuffer 질문

미해결

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

스레드에게 고유한 SendBuffer를 두는게 세션마다 SendBuffer를 두고 자기꺼만 담는것보단 일꾼(스레드)가 SendBuffer를 들고다니면서 세션에서 보내는걸 담는게 부하가 덜 걸리기 때문에 외부에 만드는걸로 이해해도 될까요?

  • C#
  • unity
  • 네트워크
박정준 댓글 1 좋아요 0 조회수 116

1바이트는 255까지 표현할 수 있지 않나요?

미해결

누구나 시작할 수 있는 네트워크 Step 2 (서브넷팅)

안녕하세요! 강의 잘 듣고있는 수강생입니다ㅎㅎ 섹션 2 bit vs Byte 강의 4:00 즈음 1바이트가 0~7까지 표현 가능하다고 하셨는데 1바이트 = 8비트 = 2^8 = 256개의 숫자를 표현하지 않나 싶어서 제가 알고있는 바와 달라 문의드립니다!

  • 네트워크
김영석 댓글 2 좋아요 0 조회수 296

정리 질문있습니다

미해결

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

안녕하세요 I/O 흐름을 제가 제대로 이해했는지 궁금합니다... I/O class : byte class / String class 로 나뉨 byte class output 위주로 정리 기본스트림(FileOutputStream)을 사용하여 1byte씩 loop를 사용해서 쓰기 byte array 사용하여 배열 사이즈 만큼 쓰기 보조스트림(BufferedOutputStream)을 사용하여 쓰기 String class 기본스트림(FileOutputStream) 과 String.getBytes(charset)을 사용하여 직접 인코딩하여 쓰기 보조스트림(OutputStreamWriter : 인코딩 대신 처리)사용하여 쓰기 FileWriter(FileOutputStream을 내부에서 생성 / OutputStreamWriter 상속) 사용하여 쓰기 질문1) 위의 흐름이 맞을까요? 질문2) String class 는 인코딩을 해야하지만 byte class 인코딩을 하지 않는다. 두가지 질문이 맞을까요?

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

ipv6 패킷관찰

미해결

개발자를 위한 컴퓨터공학 2: 혼자 공부하는 네트워크

ipv6-fragmentation.pcapng 파일에서 1,2 번 패킷들은 ip단편화가 일어나지않앗지만 2개의 패킷으로 전송된 이유가 뭔가요 ?

  • 네트워크
  • routing
  • tcpip
릴뭐뭐 댓글 0 좋아요 0 조회수 174

강의 연장 부탁드립니다

미해결

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

안녕하세요 시험전에 다시한번 강의를 들을려고 하는데 오늘이 마지막 날이여서 연장 가능하면 해주시면 감사하겠습니다.

  • 네트워크
  • aws
유연승 댓글 3 좋아요 0 조회수 138

네트워크 TIME_WAIT에 대한 질문이 있습니다!

해결됨

인프라공방 - 그럴듯한 서비스 만들기

안녕하세요 강의 정말 잘 듣고 있습니다! 18:10 에서 TCP 연결 해제를 위해 클라이언트의 마지막 ACK가 유실되면 클라이언트가 서버로부터 SYN패킷을 보내 재연결을 시도한다고 말씀해주셨습니다 그런데 https://birdie-hyun.tistory.com/3 이 블로그에서는 ACK가 유실되면 서버가 클라이언트로부터 일정 횟수만큼 FIN 요청을 보낼 것이고, 클라이언트는 시간이 지나고 연결이 끊어졌기 때문에 FIN에 대한 ACK를 보낼 수 없어 네트워크 트래픽으로 이어진다고 나와있습니다 어떤 내용이 사실인지 궁금해서 질문 남겨봅니다 감사합니다..!

  • 네트워크
케시 댓글 1 좋아요 0 조회수 162

RegisterRecv()가 멀티스레드 환경에서 안전하다는 게 이해가 가지 않습니다.

미해결

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

안녕하세요 선생님. 선생님 강의 덕분에 요즘 서버 개발이 너무 재밌습니다. 감사합니다. 다름이 아니라 이해가 안가는 부분이 있어서 질문드립니다. 1:20 초에 RegisterRecv()는 멀티스레드 환경에서 안전하다고 하셨는데 이 부분이 이해가 가지 않습니다. AcceptEx()를 걸고 나서 만약 클라이언트가 5개 붙으면 ProcessAccept()는 5번 호출될 것이고, 호출될 때마다 ProcessConnect()를 내부에서 호출하여 WSARecv()는 연결된 클라이언트마다 1번씩 호출하게 되는 것으로 코드를 이해했습니다. 그렇다면 클라이언트가 5명 붙는다면 WSARecv()는 5번 호출될텐데, 각 클라이언트가 동시에 send한다면 서버는 GetQueuedCompletionStatus()를 통과하여 동시다발적으로 ProcessRecv()를 호출할텐데 이 때 멀티스레드 critical section 문제가 발생할 것 같은데 제가 잘못 이해한 부분이 있을까요? 혹시 client 별로 한 개 씩 RegisterRecv()를 등록해 놨으므로 각 client들은 각자 등록한 WSARecv()에만 연결되는 것이라서 멀티스레드 문제가 안 생긴다는 뜻일까요?

  • 네트워크
  • MMORPG
  • windows-server
1 111 댓글 2 좋아요 0 조회수 215

와이어샤크

미해결

개발자를 위한 컴퓨터공학 2: 혼자 공부하는 네트워크

http 프로토콜의 패킷같은 경우 http,tcp ipv4 , eth , rip 등 다양한 프로토콜을 사용하고 있을텐데, 이 특정 패킷은 http,tcp,ipv4로 필터링 하면 다 검색이 되는건가요 ?

  • 네트워크
  • routing
  • tcpip
릴뭐뭐 댓글 1 좋아요 0 조회수 183

OnRep_Owner() 함수를 통한 오너값 동기화

미해결

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

안녕하세요 선생님 질문사항이 있어 글 남깁니다! 3강 커넥션과 오너십 강의 영상 41:25 쯤 서버와 클라이언트의 오너값이 동기화가 된다고 하셨는데 그럼 클라이언트에 존재하는 Player와 서버에 존재하는 Player 둘 다 같은 PlayerController가 빙의된 상태라는 걸까요? 아니면 클라이언트가 접속 요청할 때 Login 과정에서 복제된 PlayerController를 빙의하는 걸까요?

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

VPN Client 문의드립니다.

해결됨

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

선생님, 강의 잘 듣고 있습니다. VPN G to E 의 경우, VPN Client 프로그램이 필수인 것 같은데요. VPN 연결하였을 때, Client 가 향하는 SG 는 VPN Client 프로그램에 설정이 되어 있는 것일까요? 중국에서 접속해도 부산에 있는 SG 로 연결되는 것으로 예시를 들어주셨는데 서울에 있는 SG 로 연결될 수도 있다면 이것은 client 에 설정을 강제 설정을 하는 것인지 궁금합니다.

  • 네트워크
아리마 댓글 2 좋아요 0 조회수 196

SocketException: Connection reset 에러가 뜨지 않습니다

미해결

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

학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문 전에 다음을 꼭 확인해주세요. 1. 강의 내용과 관련된 질문을 남겨주세요. 2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요. (자주 하는 질문 링크: https://bit.ly/3fX6ygx) 3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요. (질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG) 질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요. ========================================= [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예/아니오) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) [질문 내용] java.net.SocketException: Connection reset 네트워크 예외4- 강제종료 강의 중 위 에러가 뜨질 않습니다. 혹시나 서버에서 close() 호출 후 FIN packet을 보내는 것이 오래걸리나 싶어 Thread.sleep()도 3초에서 5초 가량으로 늘려보기도 했는데, "read = -1" 이라고 콘솔에 뜹니다. 반면, "java.net.SocketException: Broken pipe" 에러는 잘 뜹니다. 무슨 문제인지 잘 모르겠습니다.

  • java
  • 네트워크
  • 객체지향
  • socketexception
  • exception
고원준 댓글 3 좋아요 0 조회수 902

HTTP 메시지

미해결

개발자를 위한 컴퓨터공학 2: 혼자 공부하는 네트워크

HTTP 메시지는 패킷의 어느부분에 들어가는건가요 ?

  • 네트워크
  • routing
  • tcpip
릴뭐뭐 댓글 1 좋아요 0 조회수 186

네임 서버

미해결

개발자를 위한 컴퓨터공학 2: 혼자 공부하는 네트워크

ip를 자동으로 할당받는 경우 isp가 ip를 할당해주고 dns도 할당해주나요? 그럼 kt를 이용하는 경우 도메인 네임 resolve 하는경우 kt의 dns를 이용하고있는건가요 ? 그리고 kt의 dns가 모든 도메인네임에 해당하는 ip주소를 가지고 있을순 없으니 , 루트 네임서버, TLD 네임서버 , 최종 네임 서버는 따로있는건가요 ?

  • 네트워크
  • routing
  • tcpip
릴뭐뭐 댓글 0 좋아요 0 조회수 128

재귀적 락 허용 질문있습니다.

미해결

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

재귀적 락 허용을 하고 WriteLock을 잡은상태에서 ReadLock을 잡을수 있으면 한 쓰레드가 WriteLock을 수정을 하고있는데 다른 쓰레드가 ReadLock을 잡아서 읽어오면 최신상태가 아닌 값을 읽어오지 않나요 ?? 만약 그렇다면 왜 그렇게 하나요 ??

  • C#
  • unity
  • 네트워크
pnj991122 댓글 2 좋아요 0 조회수 169

Error while creating link: Could not find NPF id for interface VMnet0

미해결

누구나 시작할 수 있는 네트워크 Step 3 (네트워크 만들기)

- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요. 라우터에 vm을 연결하려고 하니 위와같은 메시지가 뜨네요

  • 네트워크
김수민 댓글 2 좋아요 0 조회수 217

L3Switch & Router

해결됨

외워서 끝내는 네트워크 핵심이론 - 기초

- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요. 안녕하세요 강의 잘 듣고있습니다. MAC주소로 Switching하면 L2Switch, IP주소로 Swithching하면 L3Switch(==Router) 라고 이해를 하고있었는데요 조금 찾아보니 Router == L3Switch가 아니라 별도로 L3Switch라는 것이 존재한다는걸 알게되었습니다. L3switch의 경우 InterVLAN 및 LAN상에서의 Switching에 특화되어있다고하고, Router의 경우 WAN환경 및 고급네트워크 기능 (NAT, VPN, ...) 등에 특화되어있다고 하는 글을 보았는데요 또 어떠한 글은 이제 그 둘의 유의미한 차이는 없다라고도 하는걸 보았습니다. 어떤 글이 맞을까요?? (널널한 개발자님이 따로 설명을 해주시지 않는 것으로보아 후자가 맞아보이긴합니다만...) 가격대, 그리고 주요 목적에 따라 어떤 장비를 사용해야 할지가 결정되는걸까요?? 감사합니다!!

  • 네트워크
  • 프로토콜
김태준 댓글 3 좋아요 1 조회수 268

RESTful API에 대해 질문 드립니다

해결됨

외워서 끝내는 네트워크 핵심이론 - 기초

CRUD의 각 함수를 URI로 기술하고 리퀘스트를 통해 함수를 호출한다고 설명해 주셨는데, 예를 들어 사용자가 Read 함수의 URI를 리퀘스트에 담아 서버에 보내면 서버는 Read 함수를 호출해주게 되는 건가요?

  • 네트워크
  • 프로토콜
한소림 댓글 2 좋아요 0 조회수 226

IOException 예외 처리 질문

미해결

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

학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문 전에 다음을 꼭 확인해주세요. 1. 강의 내용과 관련된 질문을 남겨주세요. 2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요. (자주 하는 질문 링크: https://bit.ly/3fX6ygx) 3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요. (질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG) 질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요. ========================================= [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예/아니오) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) [질문 내용] 여기에 질문 내용을 남겨주세요. 안녕하세요, IOException 예외 처리 관련해서 질문드립니다. 영상과 교안을 보다보니 어떤 메소드에서는 IOException을 던지고, 어떤 메소드에서는 try-catch문을 이용해서 처리하는데, 기준이 무엇인지 궁금합니다. 예외는 항상 처리해야하는 것이 아닌가? 라고 생각하고 있었는데 코드를 보니 또 그런건 아닌 것 같아서요. 감사합니다!

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

안녕하세요 aws 사용 안해도 되나요 ?

미해결

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

virtual box 로 리눅스 띄워서 그걸로 강의 진행 따라가도 전혀 문제가 없나요 ? aws 만의 특별한 무언가를 하시는 것이 있나요 ?

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

채팅 클라이언트 문의

미해결

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

안녕하세요. 채팅 클라이언트 실습전에 먼저 구현을 해보았는데요. 클라이언트 메인에서 스레드를 스타트 하면 그 즉시 소켓이 닫히면서 프로그램이 종료되는 오류를 겪었습니다. 이는 클라이언트 메인에서 sender 스레드를 join하면서 해결하긴 했는데요. 영한님의 예제에서는 start() 만 하여도 프로그램이 종료되지 않는데, 왜 저의 코드는 종료될까.... try with resources 가 문제인가 싶다가도 그건 아닐거 같은 모호한 상황에 놓여서.... 제가 볼 땐 도무지 보이지 않아서, 코드 리뷰와 원인 파악을 부탁드리려고 질문을 남깁니다. MessageHandler.java package com.hoonjin.study.java.ionetwork.network.chat.client; import lombok.RequiredArgsConstructor; import java.io.DataInputStream; import java.io.IOException; import java.net.Socket; import static com.hoonjin.study.java.util.MyLogger.log; @RequiredArgsConstructor public class MessageHandler implements Runnable { private final Socket socket; @Override public void run() { try (DataInputStream dis = new DataInputStream(socket.getInputStream())) { while (true) { String msg = dis.readUTF(); log(msg); } } catch (IOException e) { e.printStackTrace(); } } } MessageSender.java package com.hoonjin.study.java.ionetwork.network.chat.client; import com.hoonjin.study.java.ionetwork.network.chat.Command; import lombok.RequiredArgsConstructor; import java.io.DataOutputStream; import java.io.IOException; import java.net.Socket; import java.util.Arrays; import java.util.Scanner; import static com.hoonjin.study.java.util.MyLogger.log; @RequiredArgsConstructor public class MessageSender implements Runnable { private static final String DELIMITER = "\\|"; private final Socket socket; private boolean joined = false; @Override public void run() { Scanner scanner = new Scanner(System.in); try (DataOutputStream dos = new DataOutputStream(socket.getOutputStream())) { while (true) { log("input message with cmd: "); String msg = scanner.nextLine(); if (msg.isEmpty()) { continue; } String[] split = msg.split(DELIMITER); String cmd = split[0]; if (Arrays.stream(Command.values()).noneMatch(c -> c.value().equals(cmd))) { log("wrong command"); continue; } if (cmd.equals(Command.EXIT.value())) { dos.writeUTF(msg); joined = false; break; } else if (cmd.equals(Command.JOIN.value())) { joined = true; } if (joined) { dos.writeUTF(msg); } } } catch (IOException e) { e.printStackTrace(); } } } ChatClient.java package com.hoonjin.study.java.ionetwork.network.chat.client; import java.io.IOException; import java.net.Socket; public class ChatClient { private static final String SERVER = "localhost"; private static final int PORT = 23456; public static void main(String[] args) throws IOException, InterruptedException { try (Socket socket = new Socket(SERVER, PORT)) { Thread messageHandler = new Thread(new MessageHandler(socket)); Thread messageSender = new Thread(new MessageSender(socket)); messageHandler.start(); messageSender.start(); messageSender.join(); // 이 부분이 없으면 시작하자마자 즉시 종료됨 } catch (IOException e) { e.printStackTrace(); } } } Command.java package com.hoonjin.study.java.ionetwork.network.chat; import lombok.RequiredArgsConstructor; @RequiredArgsConstructor public enum Command { JOIN("/join"), MESSAGE("/message"), CHANGE("/change"), USERS("/users"), EXIT("/exit") ; private final String value; public String value() { return value; } } 이상입니다. 확인해주시면 감사하겠습니다. 새해복 많이 받으세요!

  • java
  • 네트워크
  • 객체지향
헬로월드 댓글 1 좋아요 0 조회수 125

인기 태그

인프런 TOP Writers

주간 인기글