Visualizzazione dei risultati da 1 a 10 su 10

Discussione: [c#]socket

  1. #1
    Utente di HTML.it
    Registrato dal
    Jun 2003
    Messaggi
    4,826

    [c#]socket

    Salve a tutti.
    Vorrei inviare dei dati dal programma client ad una pagina web,come si puo' fare?
    Grazie.

  2. #2
    Utente di HTML.it L'avatar di Sypher
    Registrato dal
    Jun 2003
    Messaggi
    1,994
    potresti usare un webservice ma non so dirti se è la soluzione migliore
    La passera non dura perchè Sypher la cattura!

    "No one like us we don't care, we are millwall, super millwall, we are millwall from the DEN"

  3. #3
    Utente di HTML.it
    Registrato dal
    Jun 2003
    Messaggi
    4,826
    Non vorrei usare un webservice(sarebbe sovradimensionato),vorrei solo inviare stringhe di testo ad una pagina.

  4. #4
    Utente di HTML.it
    Registrato dal
    Jun 2003
    Messaggi
    4,826
    ho letto che le socket fanno questo genere di lavoro ma non riesco a capire come.

  5. #5
    Originariamente inviato da giuseppe500
    Non vorrei usare un webservice(sarebbe sovradimensionato),vorrei solo inviare stringhe di testo ad una pagina.
    Ma la pagina dovrebbe ricevere queste stringhe di testo e farci qualcosa. Magari esiste anche un altro modo piu' o meno macchinoso (forse anche caricare un browser nell'applicazione e passare sotto forma di parametri get o post le stringhe di testo) ma mi sembra che il consiglio del webservice sia azzeccato.
    Saluti a tutti
    Riccardo

  6. #6
    Utente di HTML.it
    Registrato dal
    Jun 2003
    Messaggi
    4,826
    ok posto il codice :

    IPHostEntry IPHost = Dns.Resolve("localhost");

    MessageBox.Show(IPHost.HostName);
    string []aliases = IPHost.Aliases;

    IPAddress[] addr = IPHost.AddressList;
    MessageBox.Show(addr[0].ToString());
    EndPoint ep = new IPEndPoint(addr[0],80);

    Socket sock = new Socket(AddressFamily.InterNetwork,SocketType.Strea m,ProtocolType.Tcp);

    sock.Connect(ep);
    if(sock.Connected)
    MessageBox.Show("OK");
    Encoding ASCII = Encoding.ASCII;
    string Get = "prova.php?test";
    Byte[] ByteGet = ASCII.GetBytes(Get);
    Byte[] RecvBytes = new Byte[256];
    sock.Send(ByteGet, ByteGet.Length, 0);

    sock.Shutdown(SocketShutdown.Both);
    sock.Close();

    il problema è che non riesco a connettermi in localhost su di una data pagina ad es:

    IPHostEntry IPHost = Dns.Resolve("localhost/prova.php");
    non funziona perchè?

  7. #7
    Utente di HTML.it
    Registrato dal
    Jun 2003
    Messaggi
    4,826
    vorrei passare dati a una pagina php in remoto
    up

  8. #8
    Utente di HTML.it
    Registrato dal
    Jun 2003
    Messaggi
    4,826
    ci sono riuscito con l'aiuto del forum, posto il codice c#
    using System;
    using System.Net;
    using System.Net.Sockets;
    using System.Text;

    class MyClient
    {
    public static void Main()
    {
    //scelgo l'host
    IPHostEntry IPHost = Dns.Resolve("localhost");
    Console.WriteLine(IPHost.HostName);
    string []aliases = IPHost.Aliases;

    IPAddress[] addr = IPHost.AddressList;
    Console.WriteLine(addr[0]);
    EndPoint ep = new IPEndPoint(addr[0],80);

    Socket sock = new Socket(AddressFamily.InterNetwork,SocketType.Strea m,ProtocolType.Tcp);

    sock.Connect(ep);
    if(sock.Connected)
    Console.WriteLine("OK");
    Encoding ASCII = Encoding.ASCII;
    string Get=@"&user=gg";

    string protocol="HTTP/1.0" ;
    string br="\r\n" ;
    string target="/phpinfo.php" ;
    string host="localhost";


    string req_body="" ;

    req_body+="&user=giugioxxxxxx" ;



    string headers="POST "+target+" "+protocol+br ;
    headers+="Content-Type: application/x-www-form-urlencoded"+br ;
    headers+="Content-Length: "+req_body.Length+br+br ;


    Byte[] ByteGet = ASCII.GetBytes(headers+req_body);
    Byte[] RecvBytes = new Byte[2256];
    sock.Send(ByteGet, ByteGet.Length, 0);
    Int32 bytes = sock.Receive(RecvBytes,0, RecvBytes.Length, 0);
    string strRetPage="";
    strRetPage = ASCII.GetString(RecvBytes, 0,RecvBytes.Length);
    Console.WriteLine(strRetPage );

    strRetPage = null;
    strRetPage = strRetPage + ASCII.GetString(RecvBytes, 0, bytes);
    while (bytes > 0)
    {
    bytes = sock.Receive(RecvBytes,0, RecvBytes.Length,SocketFlags.Peek);
    strRetPage = strRetPage + ASCII.GetString(RecvBytes, 0, bytes);
    Console.WriteLine(strRetPage );
    }
    sock.Shutdown(SocketShutdown.Both);
    sock.Close();
    }
    }

  9. #9
    Utente di HTML.it
    Registrato dal
    Jun 2003
    Messaggi
    4,826
    il codice funziona in locale ma non in remoto:
    se eseguo il seguente codice cambiando l'host con un host sul web non funziona:
    IPHostEntry IPHost = Dns.Resolve("www.creazione.com");
    Console.WriteLine(IPHost.HostName);
    string []aliases = IPHost.Aliases;

    IPAddress[] addr = IPHost.AddressList;
    Console.WriteLine(addr[0]);
    EndPoint ep = new IPEndPoint(addr[0],80);

    Socket sock = new Socket(AddressFamily.InterNetwork,SocketType.Strea m,ProtocolType.Tcp);

    sock.Connect(ep);
    if(sock.Connected)
    Console.WriteLine("OK");
    Encoding ASCII = Encoding.ASCII;
    string Get=@"&user=gg";

    string protocol="HTTP/1.0" ;
    string br="\r\n" ;
    string target="/phpinfo.php" ;

    string req_body="" ;

    // req_body+="&user=giugioxxxxxx" ;



    string headers="POST "+target+" "+protocol+br ;
    headers+="Content-Type: application/x-www-form-urlencoded"+br ;
    headers+="Content-Length: "+req_body.Length+br+br ;


    Byte[] ByteGet = ASCII.GetBytes(headers+req_body);
    Byte[] RecvBytes = new Byte[2256];
    sock.Send(ByteGet, ByteGet.Length, 0);
    Int32 bytes = sock.Receive(RecvBytes,0, RecvBytes.Length, 0);
    string strRetPage="";
    strRetPage = ASCII.GetString(RecvBytes, 0,RecvBytes.Length);
    Console.WriteLine(strRetPage );

    strRetPage = null;
    strRetPage = strRetPage + ASCII.GetString(RecvBytes, 0, bytes);
    while (bytes > 0)
    {
    bytes = sock.Receive(RecvBytes,0, RecvBytes.Length,SocketFlags.Peek);
    strRetPage = strRetPage + ASCII.GetString(RecvBytes, 0, bytes);
    Console.WriteLine(strRetPage );
    }
    sock.Shutdown(SocketShutdown.Both);
    sock.Close();
    }
    mi da errore di pagina non trovata .Da browser se vado all'indirizzo www.creazione.com/phpinfo.php accede alla pagina ma da codice no!!.Perchè?

  10. #10
    Utente di HTML.it
    Registrato dal
    Jun 2003
    Messaggi
    4,826
    l'unica differenza è che sul locale ho apache e sul server ho iis puo' essere quello il problema?

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.