winsocket을 사용하여 내 게임을 LAN으로 재생할 수있는 게임으로 바꿀 수있는 방법을 알아 내려고하고 있습니다. 일부 winsockets 설명서를 읽었지만 클라이언트가 LAN에서 작성된 모든 게임을 가져올 수있는 방법을 파악할 수 없습니다.winsock을 사용하는 스캔 LAN 게임 서버
LAN의 각 IP에 192.168.0.1, 192.168.0.2 등의 연결을 시도하는 등 연결을 시도해야합니까? 더 좋은 방법이 있습니까?
winsocket을 사용하여 내 게임을 LAN으로 재생할 수있는 게임으로 바꿀 수있는 방법을 알아 내려고하고 있습니다. 일부 winsockets 설명서를 읽었지만 클라이언트가 LAN에서 작성된 모든 게임을 가져올 수있는 방법을 파악할 수 없습니다.winsock을 사용하는 스캔 LAN 게임 서버
LAN의 각 IP에 192.168.0.1, 192.168.0.2 등의 연결을 시도하는 등 연결을 시도해야합니까? 더 좋은 방법이 있습니까?
브로드 캐스트를 사용하여 LAN에서 서버를 광고 할 수 있습니다. 그런 다음 클라이언트는 이러한 브로드 캐스트를 수신하여 서버를 찾을 수 있습니다.
더 많은 정보를 원하시면 여기를 참조하십시오 : http://tangentsoft.net/wskfaq/intermediate.html#broadcast
은 일반적으로 이러한 게임 서버는 모든 클라이언트가 받아 그들이 듣고있는 것처럼 너무 오래 처리 할 수있는 뭔가가 로컬 UDP 브로드 캐스트를 사용합니다. http://visual-c.itags.org/visual-c-c++/29424/
첫째로, 나는 당신이 어떤 네트워크 개발을 위해 와이어 샤크를 얻을 것을 제안 : 여기
내가 그런 당신에게 관심을 가질 발견 된 일부 샘플 클라이언트와 서버 코드입니다. 그것은 패킷이 전선을 통과하는 것을 보여줍니다. 이렇게하면 여러 가지 방법이 있기 때문에 다른 게임이 어떻게하는지 볼 수 있습니다.UDP 브로드 캐스트를 사용하는 것이 한 가지 방법입니다. 목표 ip의 마지막 바이트를 255로 변경하기 만하면됩니다.
마지막 바이트를 맹목적으로 변경해도 항상 작동하지는 않습니다. 네트워크에서 사용중인 실제 서브넷 마스크에 따라 다릅니다. 브로드 캐스트 주소를 생성하는 올바른 방법은 로컬 컴퓨터의 IP를 가져 와서 서브넷 마스크와 AND 한 다음 서브넷 마스크의 역함과 OR하는 것입니다. 또는 글로벌 브로드 캐스트 주소 255.255.255.255 만 사용하십시오.하지만 모든 방화벽/라우터가이를 통과 할 수있는 것은 아닙니다. –
이렇게하려면 두 가지 방법이 있다고 생각합니다.
클라이언트와 서버가 서로 연결할 수 있도록 "로비"를 만듭니다.
서버는 UDP 패킷을 브로드 캐스트합니다. 클라이언트는 서버 목록을 수신하고 업데이트합니다. 당신은 빠르고 쉬운 방법이 필요하면
, 두 번째 옵션은 큰하지만 각 클라이언트에 대해 한 번만 사용으로 UDP 패킷의 대부분이 낭비됩니다 remeber 될 것이다.
첫 번째 옵션은이 문제에 대한보다 일반적인 일반 솔루션입니다. 그러나 설계하고 구현하는 데 더 많은 시간이 필요할 수 있습니다.
체크 아웃 http://en.wikipedia.org/wiki/Broadcast_address –