Oppure

Loading
Questo topic e' stato chiuso dal moderatore.
07/09/11 9:04
DexterELEL
Salve ragazzi, ho un piccolo problema nel creare una reverse connection il server si blocca e solo quando riceve la connessione dal client manda i messaggi desiderati.. spiego meglio con i codici..

Client
public static void Connetti_Server()
        {
            TcpClient Connector = new TcpClient();
            GetConnection:
            string IP = "127.0.0.1";

            try
            {
                Connector.Connect(IP, 2000);
                IsConnected = true;
            }

            catch
            {
                goto GetConnection;
            }
        }
        private void button1_Click(object sender, EventArgs e)
        {
            Connetti_Server();
        }


Server:
try
            {
                IPAddress IP = IPAddress.Parse("127.0.0.1");
                TcpListener myList = new TcpListener(IP, 2000);
                MessageBox.Show("Connessioni in Ascolto");
                myList.Start();
                Socket s = myList.AcceptSocket();
                MessageBox.Show("Connessione Ricevuta: " + s.RemoteEndPoint);
            }
            catch { }


C'è qualcuno che saprebbe aiutarmi?? :-|:-|
aaa
07/09/11 9:20
HeDo
il motivo è perchè AcceptSocket è bloccante, ovvero tiene appeso il thread chiamante finchè non si connette un nuovo client.

ci sono un paio di modi furbi di aggirare questa cosa, il primo è quello di spostare la connessione dei client e la ricezione dei dati in un thread separato, il secondo è quello di usare chiamate non bloccanti, come ad esempio BeginAcceptSocket:

msdn.microsoft.com/it-it/library/…
msdn.microsoft.com/it-it/library/…
msdn.microsoft.com/it-it/library/…
msdn.microsoft.com/it-it/library/…
aaa
07/09/11 9:21
nessuno
Postato originariamente da HeDo:
ci sono un paio di modi furbi


Direi

un paio di modi standard

di scrivere queste applicazioni ...
Ricorda che nessuno è obbligato a risponderti e che nessuno è perfetto ...
---
Il grande studioso italiano Bruno de Finetti ( uno dei padri fondatori del moderno Calcolo delle probabilità ) chiamava il gioco del Lotto Tassa sulla stupidità.
07/09/11 9:26
HeDo
Postato originariamente da nessuno:

Postato originariamente da HeDo:
ci sono un paio di modi furbi


Direi

un paio di modi standard

di scrivere queste applicazioni ...


mi sembrava troppo cattivo sottolineare il fatto che queste cose SI DEVONO sapere quando si sviluppa del codice di rete, l'unica cosa che mi dispiace è che il primo programma di questo tizio è un trojan... ma che ci vuoi fare, mica posso bannarli tutti :(
aaa
07/09/11 9:27
nessuno
Postato originariamente da HeDo:
mica posso bannarli tutti :(


Sicuro ?
Ricorda che nessuno è obbligato a risponderti e che nessuno è perfetto ...
---
Il grande studioso italiano Bruno de Finetti ( uno dei padri fondatori del moderno Calcolo delle probabilità ) chiamava il gioco del Lotto Tassa sulla stupidità.
07/09/11 9:34
DexterELEL
Utilizzare una Reverse Connection è sinonimo di trojan?? non mi pare comunque ho risolto..Grazie :D
aaa