inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

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

소켓을 인자로 넘기는 방법이 궁금합니다.

168

chobo

작성한 질문수 28

0

[선생님 답변]

(꼭 사용할 필요는 없지만) 필요한 추가 인자를 넘겨주고 싶을 때

사용하는 것으로 이해를 해주시면 됩니다.

예를 들어 Listener를 2개 두고 각기 다른 포트 번호를 할당해서

클라가 붙는 Listener, 서버끼리 통신을 위한 Listener를 둘 수도 있을텐데,

그렇게 하면 OnAcceptCompleted가 뜰 때 둘 중 어떤 애가 개입한건지를 알기 힘드니

sender에 필요한 추가 정보(ex. listenSocket) 등을 전달해줄 수도 있을겁니다.

우리가 사용하는 코드에선 어차피 추가로 전달할 정보가 없으니

그냥 다 null로 전달해주고 있습니다.

<------------------------------------------------------------>

선생님 말씀하신 대로 제가 코드를 구조만 생각해봤습니다.

전체적으로 수정할 실력이 되지 않아서 이런 흐름인지만 알고 싶어서 

다시 질문드립니다...

아래와 같은 형태를 큰 틀로 잡고 살을 붙이지 형식으로 생각하면 될까요?

// Program.cs

namespace ServerCore

{

    List<Listener> _listnener = new List<Listener>();

    _listener.Add(endPoint1, OnAcceptHandler); // port : 7777

    _listener.Add(endPoint2, OnAcceptHandler); // port : 8888

}

// Listener.cs

namespace ServerCore

{

      if(pending == false)

OnAcceptCompleted(_listenSocket[0], args);

      else if(pending == false)

OnAcceptCompleted(_listenSocket[1], args);    

}

unity C# network

답변 1

0

Rookiss

네 일단 코드가 완전체가 아니라 세세한 문제는 건너뛰고 말씀드리면
그렇게 소켓을 인자로 넘겨서 사용하시면 됩니다.
참고로 pending이 true라서  OnAcceptCompleted가 바로 호출되지 않는 버전이라면
실제로도 ListenSocket이 sender에 들어간 버전으로 호출이 될겁니다.

마지막으로 평소에도 겁없이 이것저것 수정해보고 테스트를 하는 방식으로
공부를 해야 더 많은 깨우침을 얻을 수 있습니다.
그러니 일단은 고치고 '무작정' 실행해보는 것을 반복해보시기 바랍니다!

TLS 질문드립니다.

0

39

2

SpinLock과 컨텍스트스위칭에 대해 질문 남겨요.

0

45

2

Unity Span

0

72

2

XML, Dll 차이점

0

103

2

Session 질문입니다

0

78

1

Write Read 커서 키워드

0

72

1

더미 클라이언트 수에 따른 OnDisconnect 발생

0

68

2

네트워크 Send 전담 스레드 배치

0

97

2

UnhandledException 으로 서버 터지는 경우

0

84

2

컨텐츠 단, 엔진 단

0

103

1

질문 있습니다

0

76

2

C# 게임서버 3D MMORPG

0

143

2

유니티6 버전

0

96

2

receive하는 부분과 send하는 부분의 차이

0

132

2

커서의 위치의 중요성

0

102

2

C++ 전혀 모르는데 C# 서버

0

169

2

강의에 질문이 있습니다

0

85

2

멀티스레드 이해도 질문

0

94

1

500 vs 500

0

127

3

OnAcceptHandler 액션 함수

0

60

1

이 정도 서버의 객관적인 수준이 궁금합니다.

0

187

2

36. Serialization #3 에서 string (name) 코드 수정 질문

0

81

2

외부 컴퓨터와의 통신 방법이 궁금합니다

0

104

1

스핀락 질문.

0

109

2