-
240111 로컬 호스트 서버 구축 2카테고리 없음 2024. 1. 11. 19:40
결과
클라이언트에서 보낸 메세지가 서버로 전달된다
서버와 클라이언트 선택
imgui를 사용하여 서버와 클라이언트를 선택하여 들어갈 수 있도록 하였다.
Server
void NetObejctServer::Start() { m_IsServer = true; SOCKADDR_IN Add; if (false == CreateSocket(Add)) // Socket { return; } if (false == BindPort(Add)) // Bind { return; } if (false == Listen()) // Listen { return; } Accept(); // accept }
Client
void NetObjectClient::Start() { SOCKADDR_IN Add; if (false == CreateSocket(Add)) // socket { return; } if (false == Connect(Add)) // connect { return; } a}
클라이언트에서는 메세지를 Send할 수 있고, 서버에서는 보낸 메세지를 받아 imgui에 띄울 수 있도록 구성하였다
if(false == NetInst->GetIsServer()) // client { ImGui::Text("This is Client"); ImGui::InputText("##TestMessage", &InputBlank[0], 1024); ImGui::SameLine(); if (ImGui::Button("Send")) // send { NetInst->Send(reinterpret_cast<char*> (&InputBlank), 1024); } } else // server { ImGui::Text("This is Server"); NetInst->Update(_DeltaTime); if (true == NetInst->Read(RevData)) // Recv { memcpy_s(InputBlank,1024, &RevData[0], 1024); } ImGui::Text("##RevMessage %s", InputBlank); // 변경사항 적용 }
수정해야할 점
1. 호스트에서는 Recv에서 대기상태에서 대기하기 때문에 추가로 메세지를 보내는 기능을 수행할 수 없다.
2. 마찬가지로 클라이언트에서 보내는 기능 외 추가기능을 만들어야 한다.
3. 1과 2가 실행되기 위해서 네트워크 쓰레드를 사용해 볼 예정이다.
+) 다중접속이 가능하도록 변경할 예정이다