💻 유니티 클라이언트 개발
📺 소켓 서버 개발
-
[C# 서버] 소켓 서버 문서
C# 기반으로 제작한 소켓 서버의 문서입니다. 이 서버는 Unity 엔진을 위해 제작되었으며, 온라인 게임을 포함하여 시뮬레이션, 하드웨어 제어 등 다양한 분야에서 사용될 수 있습니다. HTML 삽입 미리보기할 수 없는 소스
-
[Socket + MySql] 비동기 쿼리 사용 This MySqlConnection is already in use.
클라이언트 서버 DB 관계에서는 비동기 쿼리 호출응답을 사용하여야 하는데, 멀티쓰레드 환경에서 오류가 발생하였고, 이를 해결하여 정리해봤습니다. 📺 오류 This MySqlConnection is already in use. 오류가 나오며 현재 이 Connection이 사용중이라고 나옵니다. 💬 오류 스크립트 using MySqlConnector; using Server.Game; using System; using System.Collections.Generic; using System.Data; using System.Diagnostics; using System.Linq; using System.Text; using System.Threading.Tasks; /// /// MySQL 쿼리 매니저 /..
-
[C# 서버] RSA(공개키) 방식으로 통신
서버와 클라이언트 간 통신에서 비밀번호와 같은 민감한 정보를 공개키 방식으로 통신하는 이유는 보안과 개인 정보 보호를 강화하기 위해서입니다. 공개키 암호화는 대칭키 암호화에 비해 추가적인 보안 기능을 제공합니다. 💬 시작하기 앞서... 본 글은 소켓 서버 자체 구축 중 로그인 기능을 구현하기위해 서버로 비밀번호를 요청할 때 비밀번호를 평문으로 보내면 유출가능성이 있어 이를 해결하기위한 공개키 암호화 방식을 사용하는 방법을 구현하고 정리한 글 입니다. 💬 서론 공개키 암호화 방식은 공개키와 개인키라는 두 개의 키를 사용합니다. 공개키는 모든 사람에게 공개되어 있으며, 개인키는 키 소유자에게만 비밀로 유지됩니다. 이 방식은 다음과 같은 장점을 가지고 있습니다. 기밀성: 공개키로 암호화된 정보는 개인키로만 해..
-
[구글 프로토콜 버퍼] 패킷 한글 주석 인코딩 해결
PROTOBUF를 이용하여 패킷을 생성할 때 한글주석 인코딩이 깨지는 문제가 발생하여 개발에 불편함을 줘 이를 해결하는 방법을 찾아 해결하고 정리하였습니다. 💬 문제점 위와같이 주석 인코딩이 깨져 알 수 없는 문자로 나타나는 것을 볼 수 있습니다. 인코딩 문제는 UTF-8로 인코딩을 바꿔 어렵지 않게 해결할 수 있습니다. 📖 해결 방법 *.proto 파일의 확장자를 txt로 바꿔줍니다. txt로 바꾼 파일을 메모장으로 열고 다른 이름으로 저장을 클릭합니다. 파일명과 이름을 그대로 둔 채 인코딩을 UTF-8로 선택하고 저장합니다. txt 확장자를 다시. proto로 바꿔줍니다. proto 파일을 기반으로 패킷을 생성합니다. 한글로 정상적으로 패킷의 주석이 나오는것을 볼 수 있습니다. 🕹️ Unity Aff..
-
[유니티] 포톤(Photon) - 특정 대상에게만 RPC 호출
한 플레이어에게만 보내면 되는 함수가 있을경우 대상 플레이어게만 RPC를 보내면 네트워크 대역폭과 처리량을 절약할 수 있어서 게임의 성능과 안정성을 향상시킬 수 있습니다. 이번 글에서는 특정 플레이어게만 RPC를 보내는 방법을 다루겠습니다. ✅ 구현(스크립트 작성) · 전역 함수 using UnityEngine; using Photon.Pun; public class UtilityManager : MonoBehaviour { ... // 닉네임을 가진 플레이어에게만 RPC를 호출하는 함수 public static void CallRpcForPlayerWithName(string rpcMethodName, string targetPlayerName, params object[] parameters) { P..