ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 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가 실행되기 위해서 네트워크 쓰레드를 사용해 볼 예정이다.

     

    +) 다중접속이 가능하도록 변경할 예정이다

     

     

    댓글

Designed by Tistory.