2011-04-13 3 views
0

에 여러 클라이언트를 연결하는 두 개의 응용 프로그램 중 하나는 고객과 단절 응용 프로그램이가 어떻게이 서버

실행이

+0

이 프로그래밍 질문입니다 위치를 사용자에게 물어, 또는 당신이 이미 가지고 할, 그렇지 않으면 (NO 방화벽/서브넷) 로컬 네트워크에

를 작동 서버/클라이언트 응용 프로그램? – SWeko

+0

무슨 뜻입니까? 생각을 넓혀주세요. – V4Vendetta

+0

클라이언트가 서버에 연결을 시도하지 않는 이유는 무엇입니까? – Blorgbeard

답변

0

위한 가장 좋은 방법은 말씀 해주십시오 경우 다른 클라이언트 응용 프로그램이 자동으로 단절 응용 프로그램을 감지하는 방법, 절단하다 응용 프로그램이 서버에 연결을 시도합니다.
서버가 응답합니다.
서버가 실행 중입니다.

Yours 응용 프로그램이 서버에 연결을 시도합니다.
서버가 응답하지 않습니다.
서버가 실행 중이 아니거나 다른 문제가 있습니다.

1

당신이 방송

예를 보낼 수 있습니다 서버의 IP를 알고 있다면, 다음 시도하고 그냥 로컬 네트워크에 "어딘가 실행"하는 경우, 연결 : (빌린 나의 코드를)

public static void Main() 
    { 
    Advertise server = new Advertise(); 
    } 
    public Advertise() 
    { 
    Thread advert = new Thread(new ThreadStart(sendPackets)); 
    advert.IsBackground = true; 
    advert.Start(); 
    Console.Write("Press Enter to stop"); 
    string data = Console.ReadLine(); 
    } 
    void sendPackets() 
    { 
    Socket sock = new Socket(AddressFamily.InterNetwork, 
      SocketType.Dgram, ProtocolType.Udp); 
    sock.SetSocketOption(SocketOptionLevel.Socket, 
       SocketOptionName.Broadcast, 1); 
    IPEndPoint iep = new IPEndPoint(IPAddress.Broadcast, 9050); 
    string hostname = Dns.GetHostName(); 
    byte[] data = Encoding.ASCII.GetBytes(hostname); 
    while (true) 
    { 
    sock.SendTo(data, iep); 
    Thread.Sleep(60000); 
    } 
    } 

클라이언트는 브로드 캐스트를 청취하고 하나 이상의 응답을 수신하면 사용자에게 연결할 대상을 제공 할 수 있습니다. 물론

에만 서버가

+0

좋습니다! 클라이언트가이 요청을 청취하는 방법 –

+0

질문이 마감되었으므로 방송을 위해 google을 사용하십시오. 많은 예제가 있습니다. – BugFinder