Questo sito utilizza cookies solo per scopi di autenticazione sul sito e nient'altro. Nessuna informazione personale viene tracciata. Leggi l'informativa sui cookies.
Username: Password: oppure
C# / VB.NET - Sockets - Problema invio stringhe di testo
Forum - C# / VB.NET - Sockets - Problema invio stringhe di testo

Avatar
klez91 (Normal User)
Pro


Messaggi: 117
Iscritto: 04/05/2008

Segnala al moderatore
Postato alle 21:52
Lunedì, 03/11/2008
Ciao a tutti, mi chiedevo, in una connessione client-server, è possibile che una stessa stringa, una volta venga inviata correttamente ed un'attimo dopo venga spezzata in due ed inviati, uno dopo l'altro i due pezzi, per una statistica in cui prevale il numero delle volta in cui la stringa viene spezzata? Facendo due calcoli ho visto ke la stringa è di 5272 caratteri e viene spezzata in due parti sempre nello stesso punto(ed è proprio questo ke è strano...), la prima di 1852 e l'altra di 3420. Non credo sia normale, anche perché ogni tanto viene inviata "correttamente"....voi ke ne pensate ?

PM Quote
Avatar
pierotofy (Admin)
Guru^2


Messaggi: 6230
Iscritto: 04/12/2003

Segnala al moderatore
Postato alle 17:18
Martedì, 04/11/2008
Cosa c'entra questo con VB.NET? Ad ogni modo sarebbe interessante conoscere che programma hai usato per rilevare i pacchetti, perchè potrebbe essere che il programma stesso sia in grado di identificare che due pacchetti contengono parti dello stesso messaggio e che quindi decida di accorparli... ma poi qual'è il problema di avere il messaggio spezzato in due? E' così che funziona...


Il mio blog: https://piero.dev
PM Quote
Avatar
klez91 (Normal User)
Pro


Messaggi: 117
Iscritto: 04/05/2008

Segnala al moderatore
Postato alle 20:39
Martedì, 04/11/2008
No veramente, forse mi sono spiegato male, ma il programma l'ho fatto io in vb.net utilizzando i sockets x la connessione client-server, tutti quei numeri escono dal fatto ke posso bloccare l programma quando voglio e vedere il numero preciso dei bytes inviati e ricevuti, in ogni caso ho chiesto sul forum x una semplice curiosità. Non sono riuscito a capire se la stringa venisse spezzanta nell'invio o nella ricezione, poi xkè a volte funziona e a volte no, secondo voi è possibile ke x qualke strano motivo utilizzando la funzione System.Net.Socket.Send(Bytes, Bytes Totali, SocketFlags.None) i bytes da inviare vengano spezzati e inviati uno dopo l'altro ?

Edit - Un'altra cosa, il problema sussiste solo quando il programma si connette in rete, in locale tutto funziona bene...nn so proprio ke fare...

Ultima modifica effettuata da klez91 il 04/11/2008 alle 20:45
PM Quote
Avatar
()
Newbie


Messaggi:
Iscritto:

Segnala al moderatore
Postato alle 15:57
Sabato, 15/11/2008
[
Testo quotato

Postato originariamente da klez91:

No veramente, forse mi sono spiegato male, ma il programma l'ho fatto io in vb.net utilizzando i sockets x la connessione client-server, tutti quei numeri escono dal fatto ke posso bloccare l programma quando voglio e vedere il numero preciso dei bytes inviati e ricevuti, in ogni caso ho chiesto sul forum x una semplice curiosità. Non sono riuscito a capire se la stringa venisse spezzanta nell'invio o nella ricezione, poi xkè a volte funziona e a volte no, secondo voi è possibile ke x qualke strano motivo utilizzando la funzione System.Net.Socket.Send(Bytes, Bytes Totali, SocketFlags.None) i bytes da inviare vengano spezzati e inviati uno dopo l'altro ?

Edit - Un'altra cosa, il problema sussiste solo quando il programma si connette in rete, in locale tutto funziona bene...nn so proprio ke fare...



vengono sicuramente impacchettati ora che il pacchetto sia 1 oppure 100 dipende da tutta una serie di cose tipo le caratteristiche della rete e i metodi di impacchettamento che la rete usa per trasmettere i dati...
in sostanza quando tu comunichi con un socket che usa il protocollo tcp/ip lavori con un flusso di streaming che trasmette i dati quindi apri la connessione rimane permanente finchè non la chiudi o non va in timeout. il byte o l'array di byte che tu invii viene visto a livello applicazione oome un pacchetto unico se poi hai bisogno di dividelo in varie parti a livello hw l'effetto non cambia e hai il medesimo risultato.
per comprendere meglio questo meccanismo ti conosiglio di studiarti il modello osi/iso
comunque ciò che garantisce che i tuoi pacchetti arrivino a destinazione è il protocollo tcp/ip
quando tu invii un pacchetto viene letto dall'applicazione come un pacchetto unico.

comunque sia, non ho capito qual'è il tuo problema:rotfl:

PM Quote
Avatar
()
Newbie


Messaggi:
Iscritto:

Segnala al moderatore
Postato alle 18:19
Sabato, 15/11/2008
prova a controllare se i parametri di conessione sono giusti ip sorgente, destinazione e le porte...

PM Quote
Avatar
klez91 (Normal User)
Pro


Messaggi: 117
Iscritto: 04/05/2008

Segnala al moderatore
Postato alle 16:50
Martedì, 18/11/2008
Allora in parole povere il problema era ke una stringa di testo anzikè essere inviata interamente, veniva spezzata e poi inviata, di conseguenza se nel programma ke riceveva i dati impostavo ke x ogni stringa ricevuta la aggiungesse ad una textbox andando però a capo, mi ritrovavo cn una parola metà su una riga e metà sulla riga seguente come nell'immagine di esempio. Ancora nn ho capito xkè qst avvenga, ti ringrazio dell'interessamento ma ormai mi sono arreso...:rotfl: Ciao :k:


klez91 ha allegato un file: form1.JPG (15499 bytes)
Clicca qui per guardare l'immagine
PM Quote
Avatar
Gianluca87 (Ex-Member)
Expert


Messaggi: 300
Iscritto: 16/11/2008

Segnala al moderatore
Postato alle 19:52
Martedì, 18/11/2008
fai una cosa prenditi il mio msn dal mio profilo così mi spieghi meglio la situazione
Ciao

PM Quote
Avatar
klez91 (Normal User)
Pro


Messaggi: 117
Iscritto: 04/05/2008

Segnala al moderatore
Postato alle 20:17
Giovedì, 20/11/2008
Ti ringrazio x l'interessamento, ma per il momento ho lasciato perdere...se in seguito mi servirà il tuo aiuto nn esiterò a contattarti. Ciao e grazie ancora :k:

PM Quote