problem z socketem

0

Witam,

kod prosto z msdna a jednak coś mi nie działa:/ w linii oznaczonej !!! wyrzuca wyjątek "Nie można nawiązać połączenia, ponieważ komputer docelowy aktywnie go odmawia". Sprawdzałem to na drugim kompie, to samo. Zapora windows wyłączona całkowicie. Może ktoś wie o co chodzi?

using System;
using System.Text;
using System.IO;
using System.Net;
using System.Net.Sockets;

public class GetSocket
{
private static Socket ConnectSocket(string server, int port)
{
Socket s = null;
IPHostEntry hostEntry = null;

    // Get host related information.
    hostEntry = Dns.GetHostEntry(server);

    // Loop through the AddressList to obtain the supported AddressFamily. This is to avoid
    // an exception that occurs when the host IP Address is not compatible with the address family
    // (typical in the IPv6 case).
    foreach(IPAddress address in hostEntry.AddressList)
    {
        IPEndPoint ipe = new IPEndPoint(address, port);
        Socket tempSocket = 
            new Socket(ipe.AddressFamily, SocketType.Stream, ProtocolType.Tcp);

!!!!!! tempSocket.Connect(ipe); !!!!!

        if(tempSocket.Connected)
        {
            s = tempSocket;
            break;
        }
        else
        {
            continue;
        }
    }
    return s;
}

// This method requests the home page content for the specified server.
private static string SocketSendReceive(string server, int port) 
{
    string request = "GET / HTTP/1.1\r\nHost: " + server + 
        "\r\nConnection: Close\r\n\r\n";
    Byte[] bytesSent = Encoding.ASCII.GetBytes(request);
    Byte[] bytesReceived = new Byte[256];
   
    // Create a socket connection with the specified server and port.
    Socket s = ConnectSocket(server, port);

    if (s == null)
        return ("Connection failed");
  
    // Send request to the server.
    s.Send(bytesSent, bytesSent.Length, 0);  
    
    // Receive the server home page content.
    int bytes = 0;
    string page = "Default HTML page on " + server + ":\r\n";

    // The following will block until te page is transmitted.
    do {
        bytes = s.Receive(bytesReceived, bytesReceived.Length, 0);
        page = page + Encoding.ASCII.GetString(bytesReceived, 0, bytes);
    }
    while (bytes > 0);
    
    return page;
}

public static void Main(string[] args) 
{
    string host;
    int port = 80;

    if (args.Length == 0)
        // If no server name is passed as argument to this program, 
        // use the current host name as the default.
        host = Dns.GetHostName();
    else
        host = args[0];

    string result = SocketSendReceive(host, port); 
    Console.WriteLine(result);
}

}

0

to to oznacza dokladnie to co mowi blad.. komputer z ktorym chcesz sie polaczyc mowi "SPADAJ". biorac pod uwage ze Twoja funkcja pobiera nazwe serwera i port - sprawdz czy na wskazanym serwerze jest jakis program ktory slucha na podanym porcie, w obecnej chwili albo nie ma tam nic, albo to cos z jakiegos sobie znanego powodu nie pozwala Ci sie polaczyc.

1 użytkowników online, w tym zalogowanych: 0, gości: 1