Una richiesta per inviare o ricevere dati è stato annullato perché il socket non è connesso C #

voti
0

Sto cercando di inviare nome utente e la password di autenticazione risposta a macchina, ma io sono sempre seguente errore

Una richiesta per inviare o ricevere dati è stato annullato perché il socket non è collegato e (quando si invia su un socket datagram utilizzando una chiamata sendto) nessun indirizzo è stato fornito

static void Main(string[] args)
{
    Socket sck = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);

    sck.Bind(new IPEndPoint(IPAddress.Parse(192.168.5.40), 10022));

    sck.Listen(1);

    Socket accepted = sck.Accept();
    byte[] buffer = Encoding.Default.GetBytes(Test post);
    accepted.Send(buffer, 0, buffer.Length, 0);

    buffer = new byte[255];

    int rec = accepted.Receive(buffer, 0, buffer.Length, 0);
    Array.Resize(ref buffer, rec);
    Console.WriteLine(Recieved: {0}, Encoding.Default.GetString(buffer,24,buffer.Length-24));
    Console.WriteLine(Recieved: {0}, BitConverter.ToString(buffer, 0, 24));

    string hexValues = 00-00-00-01-f8-a0-3d-48-0b-6d-00-00-3d-0a-bf-09-00-00-00-57-00-10-00-00-00;

    byte[] hex = StringToByteArray(hexValues);

    sck.Send(hex, 0, hex.Length, 0);
    sck.Close();
    accepted.Close();
    Console.Read();
}
È pubblicato 24/10/2014 alle 12:17
fonte dall'utente
In altre lingue...                            


1 risposte

voti
4

Si tenta di inviare i dati sul socket di ascolto per le connessioni in entrata:

sck.Send(hex, 0, hex.Length, 0);

si dovrebbe inviarlo tramite acceptedinvece:

accepted.Send(hex, 0, hex.Length, 0);
Risposto il 24/10/2014 a 15:25
fonte dall'utente

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more