netowrk 앱을 빌드하려고합니다. 패키지를 보내고받는 서버를 성공적으로 만들었습니다. 지금까지 127.0.0.1 (집과 같은 장소 없음)을 가리키는 한 대의 컴퓨터에서 테스트가 수행되었습니다. 이제 네트워크로 전환하고 싶습니다. LAN 네트워크에서 특정 포트를 수신하는 컴퓨터를 어떻게 찾을 수 있습니까?네트워크에서 열려있는 TCP 포트 찾기
5
A
답변
4
서비스가 알려진 포트에서 broadcast messages을 청취해야합니다 (실제로 올바르게 작동하려면 register the program and port number with the IANA). 브로드 캐스트 메시지를 들으면 서버의 IP와 서비스의 포트에 응답합니다. 들어오는 연결을 듣고.
위의 링크에서 간단한 예제를 볼 수 있습니다. 연결된 콘솔과 포트에서 출력하지만이 정보를 사용하여 두 끝점간에 TCP 또는 UDP 연결을 설정할 수 있습니다. 여기 psudo의 예를 들어
using System;
using System.Net;
using System.Net.Sockets;
using System.Text;
class RecvBroadcst
{
public static void Main()
{
Socket sock = new Socket(AddressFamily.InterNetwork,
SocketType.Dgram, ProtocolType.Udp);
IPEndPoint iep = new IPEndPoint(IPAddress.Any, 9050);
sock.Bind(iep);
EndPoint ep = (EndPoint)iep;
Console.WriteLine("Ready to receive…");
byte[] data = new byte[1024];
int recv = sock.ReceiveFrom(data, ref ep);
string stringData = Encoding.ASCII.GetString(data, 0, recv);
Console.WriteLine("received: {0} from: {1}",
stringData, ep.ToString());
data = new byte[1024];
recv = sock.ReceiveFrom(data, ref ep);
stringData = Encoding.ASCII.GetString(data, 0, recv);
Console.WriteLine("received: {0} from: {1}",
stringData, ep.ToString());
sock.Close();
}
}
내가 그것을 할 것입니다 방법에 대한 일련의 이벤트입니다.
이 예에서는 IP가 192.168.1.0
이고 서브넷이 255.255.255.0
인 네트워크를 만들 수 있습니다. Server1
은 192.168.1.2
이고 서비스는 1234
이고 수신은 Server2
이고 서비스는 192.168.1.3
이고 포트는 4567
입니다. 둘 다 포트 3000
에 브로드 캐스트 메시지를 표시합니다. 접속 클라이언트 192.168.1.4
- 클라이언트는 dynamic port range (49152-65535)에서 임의의 포트를 선택하고 (이 예에서 포트 50123)를 UDP에 결합하고 수신하는 IP에있을 것이다.
- 클라이언트는 수신 대기중인 동일한 포트를 사용하여 브로드 캐스트 주소와 로컬 서브넷 (
192.168.1.255:3000
)의 알려진 포트로 브로드 캐스트합니다. 그는 어떤 종류의 페이로드를 보내 서버가 사용자와 동일한 포트를 사용하는 다른 사람 대신 클라이언트에게만 다시 전송합니다. (Send me your info for XYZ app!
문자열을 보냅니다) - Server1이 브로드 캐스트를 수신합니다. 메시지가
Send me your info for XYZ app!
인지 확인하고 UDP 메시지Name:Server1 IP:192.168.1.2 Port:1234
을 보낸 사람의 원본 포트 및 IP 조합 (192.168.1.4:50123
) - 으로 다시 보냅니다. Server2도 브로드 캐스트를받습니다. 메시지가
Send me your info for XYZ app!
인지 확인하고 UDP 메시지Name:Server2 IP:192.168.1.3 Port:4567
을 보낸 사람의 원본 포트 및 IP 조합 (192.168.1.4:50123
) - 으로 다시 보냅니다. 클라이언트는 메시지를 보낸 동일한 포트에서 두 개의 UDP 메시지를받습니다. 그는 답장을 분석하고 연결할 수있는 두 서버를 사용자에게 표시합니다.
관련 문제
- 1. TCP 포트 액세스 및 C++
- 2. 아이폰의 TCP 포트 청취하기
- 3. C# TCP 포트 수신
- 4. TCP 포트 바인드 방법
- 5. tcp 포트 해제, 비동기 호출
- 6. TCP 포트 수신기가 작동하지 않습니다.
- 7. Windows 도움말 TCP 포트 통신
- 8. 신뢰할 수없는 네트워크에서 TCP 드롭 아웃 감지
- 9. COM 포트 찾기
- 10. 이미 자바와 함께 열려있는 모니터의 시리얼 포트
- 11. xbox에서 열려있는 포트는 무엇입니까? ping/TCP 연결에 응답합니까?
- 12. Servlet에서 JBoss의 JNP 포트 찾기
- 13. C# .net 외부 TCP 포트 열기
- 14. tcp 포트 웹 사이트 가져 오기
- 15. TCP/IP 포트 바인딩에 대한 질문
- 16. 포트 별 TCP 연결을 종료하는 방법은 무엇입니까?
- 17. 포트 211에서 명령을 수신하는 TCP 서버
- 18. 클라이언트가 바인딩 된 TCP 포트 번호 확인
- 19. 콘솔 메시지를 보내기위한 TCP/IP 기본 포트?
- 20. TCP/IP 연결에서 소스 포트/IP 설정
- 21. WCF 이중 서비스 및 TCP 포트 고갈
- 22. 어쌔신 크리드 2 TCP 및 UDP 포트
- 23. Apache ActiveMQ : TCP 포트 64119 란 무엇입니까?
- 24. TCP 연결의 포트 번호를 찾는 방법
- 25. TCP 포트 소켓에서 XML 데이터 읽기
- 26. 포트 번호보다 많은 TCP 소켓이있을 수 있습니까?
- 27. 열려있는 탭에 대해서만 Xcode에서 찾기/바꾸기 수행하기
- 28. Eclipse 플러그인에서 현재 열려있는 파일 찾기
- 29. Windows XP 네트워크에서 연결이 거부되었습니다.
- 30. Tomcat 포트 8080이 다른 네트워크에서 볼 수 없음
127.0.0.1 대신 해당 컴퓨터의 IP 주소를 지정하십시오. – Adil
서브넷 만 신경 쓰거나 다른 서브넷에있는 사용 가능한 컴퓨터가 있는지 확인하고 싶습니까? –
그래,하지만 내 질문은 실제 포트를 찾는거야. 그렇게하면 IP를 하드 코딩하지 않고도 사용할 수 있습니다. – Samyn