mine__ral의 코딩 일지! 말지!
close
프로필 배경
프로필 로고

mine__ral의 코딩 일지! 말지!

  • 분류 전체보기
    • Language
      • Javascript
    • CS 일지!
      • HTTP 웹 통신
    • Algorithm
      • 삼성 SDS 알고리즘 특강 - C++ 코딩테스트 ..
      • 이것이 코딩 테스트다
      • 알고리즘 문제 해결 전략
      • 백준
      • 파이썬
    • Project
      • NFT 블록체인을 활용한 딥러닝 기반 사진 거래 ..
      • VR 기반 운전 시뮬레이션: 안전 "안전 운전만해..
      • 블록체인 게임 프로젝트
      • 자율주행자동차
    • Development
      • 유니티
      • Git 공부
      • Node.js
      • 게임 서버
      • Elysia.js
      • LangChain
      • Prompt Engineering
    • 삽질 일지!
  • 홈
  • 태그
  • 방명록

[git 실수] 강제 Push

1. 게임 서버 공부를 하다가 .Net Core로 Visual Studio 프로젝트를 만들어야하는 것을 .Net Framework로 만들어버렸다. 2. 해당 프로젝트를 바꾸고난 후에 원격으로 위에서 만든 레포지토리에 push를 하려고 하니 오류가 떴다 -> pull을 안해줬다는 뜻 3. 하지만 솔루션의 이름이 바뀌었기 때문에 pull을 할 수 없어서 강제 push를 했더니 commit 기록이 아예 사라졌다. 원래 강제 푸시를 하면 그런지는 모르겠지만 강제 푸시는 조심히 사용하자!

  • format_list_bulleted Git 공부
  • · 2022. 1. 26.
  • textsms
[Part 4 게임 서버] 네트워크 프로그래밍 7 (PacketSession)

[Part 4 게임 서버] 네트워크 프로그래밍 7 (PacketSession)

패킷 단위로 보내고 받는다면 Session이 어떻게 달라져야하는가? 서버에서 클라이언트의 데이터를 받을때 패킷 단위로 받고 클라이언트에서 패킷 단위로 보내자! 1. TCP 통신에서는 패킷이 전체가 왔는지 잘려서 왔는지 구분할 필요가 있다. -> 혼잡 제어로 인해 전체 패킷을 받는다는 보장이 x 1) packetId: id를 통해 패킷을 구분(1번: 이동 패킷, 2번: 공격 패킷, 3번: 이동패킷) -> 문제: 경우에 따라 유동적으로 packet의 사이즈가 줄어들 수 있음 ex) Packet을 상속받는 LoginOKPacket이 캐릭터가 갖는 캐릭턱 정보의 리스트를 보낸다고 할때 쉽게 Packet의 사이즈를 예측 할 수 없다. => Packet의 맨 처음에는 Packet의 사이즈를 나타낸다. 일반적으로 형..

  • format_list_bulleted 게임 서버
  • · 2022. 1. 21.
  • textsms
[Part 4 게임 서버] 네트워크 프로그래밍 6 (RecvBuffer, SendBuffer)

[Part 4 게임 서버] 네트워크 프로그래밍 6 (RecvBuffer, SendBuffer)

: 클라이언트에서 서버로 메세지를 보냄 -> 서버는 메세지(패킷)을 Receive -> 컨텐츠단 ReceiveBuffer의 Byte를 읽어드린다. 1. TCP의 특징으로 인해 패킷이 분할되어 전달 받을 수 있다. : 이전 코드에서 Receive Buffer를 bytes[1024] 만큼 읽어드릴 수 있다고 간접적으로 이야기한 것 1) TCP의 특성때문에 100바이트를 보내도 80바이트 만큼 우선 보내고 나중에 나머지 20바이트가 올 수 있는 것이다. 2) 만약 80바이트만 왔다고 가정을 하면 Receive Buffer에 담고 있다가 나머지 20바이트가 왔을 때 조립하여 한번에 처리해야 한다. - 아래의 OnRecv 함수처럼 Buffer에 들어온 바이트를 무조건 한번에 처리하면 안된다. -> 완벽한 Byte..

  • format_list_bulleted 게임 서버
  • · 2022. 1. 21.
  • textsms
[Part 4 게임 서버] 네트워크 프로그래밍 5(Connector, TCP vs UDP)

[Part 4 게임 서버] 네트워크 프로그래밍 5(Connector, TCP vs UDP)

* 통용되는 용어 x: Listener의 반대 역할을 하는 Connector 1. DummyClient에서 서버와 Connect하는 부분이 Blocking 함수로 작성 -> 지양 2. ServerCore 프로젝트 우클릭 -> 추가 -> 새항목: Connector.cs 만들어야함. : 왜 굳이 반드시 연결해야하는 코드가 필요한가? 서버는 연결을 받는 것 아닌가? 1) Connect 후 Receive와 Send하는 부분을 고용으로 사용하기 위해 2) 서버를 분산처리 하여 만들 수 있음 ex) NPC, AI만 관리하는 서버 vs 몬스터만 관리하는 서버 등으로 분리할 수 있음 -> 이럴 때, 서버끼리 통신하기 위해서는 서버도 Connect 해야 한다. 3. Connector.cs 코드 작성 1) DummyCli..

  • format_list_bulleted 게임 서버
  • · 2022. 1. 19.
  • textsms

[Part 4 게임 서버 ] 네트워크 프로그래밍 4 (Session #3, Session #4)

1. 이전시간 강의 회고 - Receive Buffer는 빈 Buffer로 연결 vs Send Buffer는 보낼 데이터가 담겨있는 Buffer - _sendArgs를 재사용하기 위해 클래스의 멤버 변수로 선언 -> rcvArgs도 재사용을 위해 멤버 변수로 가능(기호의 차이) using System; using System.Collections.Generic; using System.Linq; using System.Net.Sockets; using System.Text; using System.Threading; using System.Threading.Tasks; namespace SeverCore { class Session { Socket _socket; int _disconnected = 0;..

  • format_list_bulleted 게임 서버
  • · 2022. 1. 18.
  • textsms
[Part 4 게임 서버] 네트워크 프로그래밍 3(Session #1, Session #2)

[Part 4 게임 서버] 네트워크 프로그래밍 3(Session #1, Session #2)

1. 이전 시간 의문 a) 만약 RegisterAccept에서 계속 pending이 false면 OnAcceptCompleted 함수와 RegisterAccept 함수가 재귀적으로 호출되어 스택오버플로우 발생? - ListenSocket의 Listen에서 backlog를 통해 최대 대기수를 정해줬기때문에 동시다발적으로 false만 뜰 수 없음 -> 의도적으로 많은 User들이 공격하지 않는 이상 발생할 수 없음 b) Listen Socket을 하나만 만들었다. -> 굉장히 많은 User가 게임에 들어와서 서버와 통신을 하려고 할때 어떻게? - SocketAsyncEventArgs를 여러개 만들 수 있다. -> SocketAsyncEventArgs는 독립적으로 실행되기때문에 아래와 같이 for 문으로 여러..

  • format_list_bulleted 게임 서버
  • · 2022. 1. 16.
  • textsms
  • navigate_before
  • 1
  • 2
  • 3
  • 4
  • 5
  • navigate_next
공지사항
전체 카테고리
  • 분류 전체보기
    • Language
      • Javascript
    • CS 일지!
      • HTTP 웹 통신
    • Algorithm
      • 삼성 SDS 알고리즘 특강 - C++ 코딩테스트 ..
      • 이것이 코딩 테스트다
      • 알고리즘 문제 해결 전략
      • 백준
      • 파이썬
    • Project
      • NFT 블록체인을 활용한 딥러닝 기반 사진 거래 ..
      • VR 기반 운전 시뮬레이션: 안전 "안전 운전만해..
      • 블록체인 게임 프로젝트
      • 자율주행자동차
    • Development
      • 유니티
      • Git 공부
      • Node.js
      • 게임 서버
      • Elysia.js
      • LangChain
      • Prompt Engineering
    • 삽질 일지!
최근 글
인기 글
최근 댓글
태그
  • #`
전체 방문자
오늘
어제
전체
Copyright © 쭈미로운 생활 All rights reserved.
Designed by JJuum

티스토리툴바

단축키

내 블로그

내 블로그 - 관리자 홈 전환
Q
Q
새 글 쓰기
W
W

블로그 게시글

글 수정 (권한 있는 경우)
E
E
댓글 영역으로 이동
C
C

모든 영역

이 페이지의 URL 복사
S
S
맨 위로 이동
T
T
티스토리 홈 이동
H
H
단축키 안내
Shift + /
⇧ + /

* 단축키는 한글/영문 대소문자로 이용 가능하며, 티스토리 기본 도메인에서만 동작합니다.