내 게임에 멀티 플레이 지원을 추가하고 싶습니다. 따라서 TcpListener를 열고 요청 연결에 응답하고 "Join Server"단추를 만든 "Create Server" 버튼을 누르면이 버튼이 열려있는 모든 TcpListener의 목록을 표시합니다 (사용자가 연결을 클릭 할 수 있도록) C#에서 이와 관련된 내장 함수가 있습니까?C# 열린 "TcpListeners"목록을 얻는 방법
0
A
답변
0
불행히도이 기능은 IP 또는 TCP 사양에 있습니다. IP 나 TCP는 "서비스 위치 지정자"유형의 기능을 제공하지 않습니다.
이 기능을 구현하려면 서버를 실행하는 플레이어가 게임을 찾는 다른 플레이어에게 연결 정보 (IP 주소/포트 번호)를 브로드 캐스트하기위한 방법이 필요합니다. 이는 전통적으로 사용 가능한 게임에 대한 정보를 게시하는 호스트/조정 서버를 통해 수행됩니다.
3
네트워크의 모든 컴퓨터 (또는 전체 인터넷)의 모든 수신기 목록을 원하십니까? 그러면 대답은 '아니오'입니다. 거기에는 내장 함수가 없습니다.
작은 LAN에서는 서버가 자신의 존재를 방영하는 것을 벗어날 수 있습니다. 이것은 게임이 인터넷이 오기 전에 보통 어떻게했는지입니다.
요즘에는 보통 실제 게임을 호스팅하는 모든 서버의 목록이있는 중앙 서버에 연결됩니다.
어느 쪽이든 할 일이 있습니다.
0
로컬 영역 네트워크로 제한하는 경우 게임 서버가 수신 대기하는 포트에서 브로드 캐스트 할 수 있으며 일종의 등록 메시지로 회신하도록 설정할 수 있습니다.
게임을 방해하지 않으려면 게임을 분리하고 별도의 등록 서비스를 받아 게임이 수신하는 다른 포트에서 수신 대기하십시오.
관련 문제
- 1. 열린 파일의 이름을 얻는 방법?
- 2. C# 응용 프로그램에서 FireFox에서 열린 URL을 얻는 방법
- 3. 올바른 순서로 열린 편집자를 얻는 방법?
- 4. 브라우저에서 열린 탭 목록을 얻는 방법
- 5. ShellExecuteEx ..에 의해 열린 윈도우의 hWnd를 얻는 방법 hProcess?
- 6. .NET의 특정 프로세스에서 열린 TCP 연결 수를 얻는 방법
- 7. 열린 파일을 닫는 방법?
- 8. 시각적 C# 열린 파일 확장자
- 9. C# .NET에서 DPI를 얻는 방법?
- 10. C# : 문자열의 길이를 얻는 방법 []
- 11. C# Windows 응용 프로그램에서 열린 양식 찾기
- 12. C/C++에서 열린 포트 확인
- 13. C++에서 파일의 시작 부분에 포인터를 얻는 방법
- 14. 열린 페이지
- 15. 열린 마커를 모두 닫는 방법?
- 16. Ruby에서 열린 파일을 읽는 방법
- 17. 이클립스 열린 창을 닫는 방법
- 18. 프로세스가 보유하고있는 열린 파일 목록?
- 19. vb.net에서 열린 워드 문서를 저장하는 방법
- 20. 화면에서 색상을 얻는 것이 픽셀을 얻는 방법? (C++)
- 21. c/C++/vb.net/c#에서 cpu 온도를 얻는 방법?
- 22. 배열의 크기를 얻는 C++
- 23. 새로 열린 Windows Forms에 대한 TabPages C#
- 24. 열린 SerialPort에서 C# 응용 프로그램이 충돌 함
- 25. 열린 단어 템플릿 및 자동 실행 C#
- 26. C#으로 열린 파일 핸들을 모두 닫습니다.
- 27. . C++에서 열린 파일 스트림이있는 .get 함수
- 28. C++에서 열린 프로세스를 확인하는 방법은 무엇입니까?
- 29. C# .NET에서 열린 Office와 메일 병합
- 30. C#에서 CPU 사용량을 얻는 방법?
sry 정확하지 않습니다. lan 사용에만 해당 –
그런 경우 클라이언트가 UDP 포트에서 수신 대기하도록하고 서버가 해당 포트에서 현재 상태를 브로드 캐스트하게하십시오. 그러면 클라이언트는 UDP 패킷의 주소에서 서버에 다시 연결할 수 있음을 알게됩니다. 그리고 서버 이름, 게임 유형, 플레이어 수와 같은 일부 데이터를 패킷에 넣을 수 있습니다. – Thomas