Ricevere piu client contemporaneamente su TCPlistner e system.net.sock...

venerdì 29 ottobre 2010 - 12.26
Tag Elenco Tags  VB.NET  |  .NET 4.0  |  Visual Studio 2010  |  SQL Server 2000

ivanuccio Profilo | Junior Member

Gentili colleghi ho realizzato un programma che riceve dati sul protocollo TCP/IP ma non riesco a ricevere dati da + client . Quando stabilisco una connessione con il client sulla porta predefinita il secondo client non si collega,,
Come posso modificare il codice sotto riportato per ricevere dati da piu periferiche che si collegano al mio PC sulla porta predefinita?


Di seguito il codice che ho trovato su internet e funziona perfettamente ma solo con un cliente soltanto..


Il codice sorgente non è stato renderizzato qui
perchè non c'è sufficiente spazio.
Clicca qui per visualizzarlo in una nuova finestra

sankyu Profilo | Senior Member

è da un po che non faccio uso di quelle classi comunque mi pare che devi utilizzare i thread e gestire ogni connessione su di un thread separato se trovo il codice che avevo usato ( era un gioco di carte online ) te lo mando

ivanuccio Profilo | Junior Member

Bene, sono quasi arrivato alla fine, ho gestito il problema con una classe .net asincrona che gestisce il flusso dati in entrata ed in uscita..
La classe che ho usato oltre alla gestione del netream che e quella che gestisce il flusso TCP e Port, se sbaglio corregetemi, anzi approfitto per dire a chi si è trovato nella mia stessa broblematica, ci sono due modi per gestire il flusso TCP/IP oppure UDP, si chiama Sincrono ed Aasincrono, la differenza e che il primo gestisce il flusso dati stabilendo la connessione con un solo client alla volta, mentre quello asincrono e possibile gestire N client contemporaneamente. Premesso che vengano gestiti in MultiThread
Non sono un programmatore Senior ed a mio avviso ho capito quanto ho scritto...
Per il codice che hai usato sarei molto interessato a confrontarlo con il mio per vedere quanto posso stabilizzare l'applicazione, che riceve dati da apparecchi satellitari, quindi in GPRS inviano delle stringhe sotto forma di SMS che vengono lette ed attese su una determinata porta locale pubblica su un IP statico pubblico , poi vengono letti lavorati da una serie di cicli e condizioni per poi essere scritti in un DB SQL.
Per finire c'è un programma chiamato MapPoint che va a leggere questa fonte SQL per localizzare la vettura sulla cartina di MapPoint.
Questo e quello che sto facendo.....



Ciao da Ivan
www.millesity.com

sankyu Profilo | Senior Member

ciao da quanto ho capito devi fare un sistema di tracciabilità; cosa usi come client? se usi qualcosa su cui puoi installare il .net framework ti conviene non reinventare la ruota ed utilizzare la WCF

ivanuccio Profilo | Junior Member

Bene ma hai qualche link utile dove leggere il tema del mio forum..
Come client e intesa una periferica GPRS (antifurto) che con una sim telefonica inserita al suo interno invia ogni minuto un messaggio di 180 caratteri con dentro le cordinate Lat e Long.
Tu cosa mi consigli?
quale procedura utilizzare?

sankyu Profilo | Senior Member

di solito si usa un servizio sms che riceve gli sms in file di testo e poi li usi come base di dati semplicemente; praticamente hai un client che ogni voltra che viene creato un file in una directory lo processa ed aggiorna il db. Lascia stare al WCF in questo caso non serve
cerca sulla msdn i metodi della classe directory sono sicuro che ce ne è uno che lancia un evento ogni volta che un file viene creato

ivanuccio Profilo | Junior Member

Ottimo servizio ma non riesco a trovare nulla su MSDN,, hai qualche link diretto al servizio oppure alla classe che mi permette di fere quanto appena detto

Grazie mille..

sankyu Profilo | Senior Member

scusa per il ritardo comunque è questo
http://msdn.microsoft.com/it-it/library/system.io.filesystemwatcher.created.aspx
Partecipa anche tu! Registrati!
Hai bisogno di aiuto ?
Perchè non ti registri subito?

Dopo esserti registrato potrai chiedere
aiuto sul nostro Forum oppure aiutare gli altri

Consulta le Stanze disponibili.

Registrati ora !
Copyright © dotNetHell.it 2002-2024
Running on Windows Server 2008 R2 Standard, SQL Server 2012 & ASP.NET 3.5