본문 바로가기
반응형

UDP7

유니티 UDP 소켓 통신 구현하기 - C++ UDP 클라이언트 예제 코드 <4> [이전 포스팅] 2023.01.13 - [programming] - 유니티 UDP 소켓 통신 구현하기 - 예제 프로젝트 소개 2023.01.13 - [programming] - 유니티 UDP 소켓 통신 구현하기 - 유니티 UDP 서버 C# 예제 코드 2023.01.13 - [programming] - 유니티 UDP 소켓 통신 구현하기 - 파이썬 UDP 클라이언트 예제 코드 우리가 소켓 통신을 하는 이유는 특정 개발 언어와 관계없이 네트워크를 통해 데이터를 주고 받을 수 있기 때문이다 마지막으로 파이썬에 이어서 C++ UDP 클라이언트를 구현해보고 동작을 확인해보았다 main 코드 TransferManager 클래스에 UDP IP 주소와 포트번호를 전달하여 인스턴스를 생성한다 키보드로부터 입력을 받아서 d.. 2023. 1. 13.
유니티 UDP 소켓 통신 구현하기 - 파이썬 UDP 클라이언트 예제 코드 <3> [이전 포스팅] 2023.01.13 - [programming] - 유니티 UDP 소켓 통신 구현하기 - 예제 프로젝트 소개 2023.01.13 - [programming] - 유니티 UDP 소켓 통신 구현하기 - 유니티 UDP 서버 C# 예제 코드 파이썬 UDP 클라이언트 구현은 너무 간단해서 말할 것도 없다 바로 코드를 보자 UnitySender, JsonMaker UnitySender 클래스를 보면 생성자에 소켓을 정의하고, send_data 함수에서 바로 데이터를 송신한다 JSON 문자열을 만드는 것도 너무 쉽다 JsonMaker 클래스에 dictionary 변수를 만들고 'direction' key에 값을 넣으면 된다 import numpy as np import json import socke.. 2023. 1. 13.
유니티 UDP 소켓 통신 구현하기 - 유니티 UDP 서버 C# 예제 코드 <2> [이전 포스팅] 2023.01.13 - [programming] - 유니티 UDP 소켓 통신 구현하기 - 예제 프로젝트 소개 이 포스팅에서는 유니티에 UDP 서버를 구현하고 수신한 UDP 데이터를 이용해 게임 오브젝트를 이동시키는 방법에 대해 설명한다 유니티 씬 만들기 먼저 유니티 게임 씬에 Plane 1개, Sphere 1개를 생성한다 * Sphere position: (x: 0, y: 0.5, z:0)로 수정 * Plane scale: (x: 100, y: 100, z:100)로 수정 Sphere에 물리엔진을 적용하기 위해 인스펙터에서 Rigidbody를 추가한다 (이대로 Play 하면 Sphere가 Plane위에 가만히 놓여있게 된다) JSON 데이터 형식 정의하기 일반적으로 서버에서 클라이언트로 .. 2023. 1. 13.
유니티 UDP 소켓 통신 구현하기 - 예제 프로젝트 소개 <1> 다시 포스팅하게 된 이유 2021.07.30 - [programming] - 유니티에서 소켓 통신하고 이벤트 등록하기 (C# 예제 코드) 이전에 비슷한 내용을 소개한 적이 있는데 이번에 한 번 다시 써보려고 한다 사실 개인적으로 기록해 두려고 썼던 글이었는데 생각보다 많은 사람들이 이전 글을 읽는 것을 보고 조금 더 편한 방법을 소개하면 좋을 것 같아 다시 글을 쓰게 되었다 이전 글이랑 뭐가 다른지 1. UDP 소켓 통신 구현하기 - 이전 글에서는 TCP 소켓 통신을 구현했는데 단순한 소켓 통신은 UDP로도 충분히 구현할 수 있다 - 몇 가지 제약사항을 빼면 UDP가 코드가 훨씬 단순하기 때문에 이번에는 UDP 소켓 통신 구현에 대해 설명한다 2. JSON 형식으로 통신하기 - 무슨 byte array에.. 2023. 1. 13.
유니티에서 소켓 통신하고 이벤트 등록하기 (C# 예제 코드) 이 페이지는 구글링해서 이것 저것 합친 것을 정리한 것이다 내용이 일부 틀릴 수 있으므로 자세한 내용은 추가적으로 구글링하거나 전문 서적을 통해 찾아봐야 한다 특히 유니티는 거의 모르는 상태에서 작성한 것이라 분명 틀린 부분이 있을 것 같다 I. 단순한 소켓 프로그래밍 유니티 엔진을 단독으로 사용할 때에는 Photon과 같은 네트워크 패키지를 이용할 수 있다 그러나 게임을 조작하기 위해 다른 플랫폼 (C++ 또는 Python 프로그램)과 연동해야 하는 경우, 유니티 패키지를 그대로 사용할 수 없으므로 직접 소켓 프로그래밍을 작성해야 한다 이번에는 소켓 프로그래밍 (= 네트워크 프로그래밍)을 통해 유니티 게임을 조작하는 방법에 대해 알아본다 여기에 사용한 소스코드는 일부 설명을 위해 발췌한 것이고, 실제 .. 2021. 7. 30.
[TCP/IP] 멀티캐스팅 프로그래밍, 라우팅 테이블 업데이트 멀티캐스트란? 멀티캐스트(multicast)란 여러 호스트에게 데이터를 동시에 전송하는 것을 말합니다. 멀티캐스트가 수행되는 절차는 다음과 같습니다. 먼저, 클라이언트는 멀티캐스트 그룹에 참여 (join)해야 합니다. 멀티캐스트 그룹에 참여함으로써 해당 멀티캐스트 주소로 들어오는 데이터를 수신하고 싶다고 알릴 수 있습니다. 그룹에 참여하고 나면 서버가 멀티캐스트 주소로 데이터를 송신했을 때 멀티캐스트 그룹에 참여한 모든 클라이언트에게 데이터가 전달됩니다. 아래는 멀티캐스트 데이터 전송을 그림으로 표현한 것입니다. (ko.wikipedia.org/wiki/멀티캐스트) 멀티캐스트 주소 멀티캐스트 그룹에 참여하기 위해서는 멀티캐스트 주소를 이용해야 합니다. 그런데 모든 주소를 멀티캐스트 주소로 사용할 수 있는.. 2021. 1. 13.
[TCP/IP] 1. 네트워크, 패킷 그리고 프로토콜 네트워크, 패킷 그리고 프로토콜 컴퓨터 네트워크는 수많은 호스트 (host)와 라우터 (router) 장비들로 구성되어 있습니다. 호스트는 웹 브라우저나 파일 공유 프로그램들을 구동하는 컴퓨터를 의미합니다. 호스트에서 동작하는 응용 프로그램이야 말로 네트워크의 '실 사용자'라고 할 수 있습니다. 라우터 (=게이트웨이)는 하나의 통신 채널 (communication channel)로부터 온 정보들을 다른 통신 채널로 전달하는 장비입니다. 프로토콜은 통신 프로그램 사이에서 교환되는 패킷에 대한 약속이자 정의입니다. 그 중에서 TCP/IP는 이러한 문제를 해결하기 위한 프로토콜의 모음 (protocol suite)중 하나입니다. TCP/IP 프로토콜 집합체의 중요 프로토콜에는 IP, TCP, UDP가 있습니다.. 2020. 12. 18.
반응형