View Full Version : [VB6] Applicazione Client/Server
Ciao a tutti.
Ho un problema a cui non riesco a venere a capo.
Ho un'applicazione client che deve inviare dei dati ad un server.
Ho creato una connessione tcp, il client riesce a connettersi correttamente al server, ma i problemi arrivano quando invio i dati.
Per inviare dati devo utilizzare il metodo SendData del controllo Winsock per ricevere i dati devo usare GetData.
I tipi di dato inviabili/ricevibili sono tutti quelli predifiniti (byte, integer, ecc) compresi String e array di byte.
Purtroppo il mio problema è che quando invio un array di byte dall'altra parte arrivano si tutti i byte inviati, ma puntualmente settati a zero. Se invece invio una stringa o un qualsiasi altro dato che non sia un vettore il problema non si pone...
Sinceramente non so dove sbattere la testa...ne sapete qualcosa voi?
Aloha!
Non ho mai provato a fare quello che dici tu, al massimo manda una stringa contenente uno pseudo vettore (es: "dato1,dato2,dato3.....") poi compatti con la JOIN e scompatti con la SPLIT
Grazie, ma purtroppo devo assolutamente inviare un vettore di byte...
Continuo a non capire cmq...invio 8k dall'altra parte arrivano gli 8 k ... ma sono tutti a 0 ... boh :confused:
La notte porta consiglio ed ho risolto il problema... :D
I dati ricevuti vanno messi in una variabli passata al metodo "getadata". Avevo erroneamente pensato che tale variabile dovesse essere già inizializzata, così avevo imposto che essa fosse un array di 8k...Sbagliavo. Mi è bastato definirla come variant e passarla a al sopracitato metodo e tutto è funzionato.
Evidentemente get data non fa altro che un set della viabile passata sul buffer dati che viene creato al momento della ricezione.
Beh, mistero risolto! :D :D :D
Originariamente inviato da bsummer
Ciao a tutti.
Ho un problema a cui non riesco a venere a capo.
Ho un'applicazione client che deve inviare dei dati ad un server.
Ho creato una connessione tcp, il client riesce a connettersi correttamente al server, ma i problemi arrivano quando invio i dati.
Per inviare dati devo utilizzare il metodo SendData del controllo Winsock per ricevere i dati devo usare GetData.
I tipi di dato inviabili/ricevibili sono tutti quelli predifiniti (byte, integer, ecc) compresi String e array di byte.
Purtroppo il mio problema è che quando invio un array di byte dall'altra parte arrivano si tutti i byte inviati, ma puntualmente settati a zero. Se invece invio una stringa o un qualsiasi altro dato che non sia un vettore il problema non si pone...
Sinceramente non so dove sbattere la testa...ne sapete qualcosa voi?
Aloha!
Ciao. :)
Vorrei fare anch'io un programma del genere... ovvero: un programma che trasmette un messaggio al ricevitore tramite internet.
In verità poi vorrei fare dei giochini per poter giocare on-line... :D
Solo che non saprei proprio da dove iniziare... mi sai indicare se ci sono delle librerie?
Grazie e ciao. :)
Guardati tutti i metodi, proprietà ed eventi del controllo Microsoft Winsock...serve questo per comunicare fra PC via remota...cmq ti allego un progettino di prova, cosi vedi come si fa, se hai dubbi chiedi pure!! :)
Ciao. Se hai l'MsDN installato allora apri l'help e guarda la documentazione connessa al controllo WinSock.
Li troverai indicazioni sia su come realizzare un'applicazione Client/Server basata sul Tcp/Ip che un'applicazione peer2peer basata sull'UDP.
Non è affatto difficile, se cmq hai particolari problemi son qua ;)
Aloha!
Originariamente inviato da matpez
Guardati tutti i metodi, proprietà ed eventi del controllo Microsoft Winsock...serve questo per comunicare fra PC via remota...cmq ti allego un progettino di prova, cosi vedi come si fa, se hai dubbi chiedi pure!! :)
Grazie mille!!! E' stupendo... :) Poi proverò anche a capire come funziona (nel senso come funziona dentro il programma).
Siccome dalla prossima settimana dovrò farmi 5 ore di treno al giorno voglio provare a fare il gioco di scala 40 giocabile tramite internet. Se ci riuscirò lo posterò, anche se per voi sarà una c@xxata... :D
Grazie ancora e ciao. :)
Non è affatto difficile, se cmq hai particolari problemi son qua ;)
Aloha!
Grazie mille anche a te per la disponibilità. :)
Ciao. :)
Bene, se lo fai ci giochiamo :)
Se hai bisogno delle carte, ti passo un cotrollo che ho fatto, cosi da facilitare i giochi con le carte...poi magari nn ti piace!!
PS. se vuoi vederlo mi devi mandare l'email in pvt (specifica anche che vuoi il controllo) perchè qui è troppo grosso e nn posso upparlo :(
Originariamente inviato da matpez
Bene, se lo fai ci giochiamo :)
Se hai bisogno delle carte, ti passo un cotrollo che ho fatto, cosi da facilitare i giochi con le carte...poi magari nn ti piace!!
PS. se vuoi vederlo mi devi mandare l'email in pvt (specifica anche che vuoi il controllo) perchè qui è troppo grosso e nn posso upparlo :(
In che senso un controllo?
Comunque tu passa che male non fa... :D
Grazie mille davvero. ;)
La mia mail è triacjr@hotmail.com
Ciao. :)
GRAZIE MILLE!!! E' FANTASTICO!
Ma se io volessi fare un controllo come hai fatto tu, come potrei fare? Cioè, da dove dovrei partire?
Il VB lo conosco molto poco, ma mi piace. :)
Ciao. :)
Oppure se le volessi modificare, siccome mancano i quattro jolly.
Ciao. :)
Per modificarlo nn è difficile, però dovresti avere il codice...i due jolly nn ci sono per il semplice motivo che nn gli ho trocati.
Le carte che vedi sono contenute in una dll che windows adopera per "pescare" le carte nei suoi giochi....ma come ben sai..nn ci sta il jolly :(
Il funzionamento di quel ocx è semplice, è una classe visuale, cioè a differenza di una dll ha qlc di visibile sulla form, per il resto è tutto completamente uguale.
Ah... ok. E se volessi creare io un ogetto, come dovrei fare? Cioè... è possibile farlo in VB o come?
Grazie e ciao. :)
Questa non la capisco...
Ho aperto un nuovo progetto, e sul form ho messo una picture.
Fatto questo ho inserito il seguente codice:
Private Sub Picture1_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single)
If Button = 1 Then
Picture1.Move X, Y
End If
End Sub
Come fa a non andare?! Mi sfarfalla tutto l'oggetto che dovrebbe spostarsi...
Ciao. :)
Per forza ti sfarfalla, tu dici di muovere ad X, Y quando premi il bottone sinistro all'evento MouseMove, però in questo modo quando tu premi e tieni premuto il tasto ti sposti, lui entra talmente tante volte nella routine che il refresh della tuo occhio nn gli sta dietro e lo vedi sfarfallare.
Se vuoi fare una cosa del genere usa la routine: MouseDown
Originariamente inviato da TriacJr
Ah... ok. E se volessi creare io un ogetto, come dovrei fare? Cioè... è possibile farlo in VB o come?
Grazie e ciao. :)
Il mio è fatto in VB6 per cui si può fare benissimo, ora spiegarti in poche righe nn è semplice, prova a vedere se trovi in giro per la rete dei tutorial che spiegano come fare gli OCX in VB6
Originariamente inviato da matpez
Per forza ti sfarfalla, tu dici di muovere ad X, Y quando premi il bottone sinistro all'evento MouseMove, però in questo modo quando tu premi e tieni premuto il tasto ti sposti, lui entra talmente tante volte nella routine che il refresh della tuo occhio nn gli sta dietro e lo vedi sfarfallare.
Se vuoi fare una cosa del genere usa la routine: MouseDown
Si, ma in MouseDown me lo sposta una sola volta e basta...
Ciao. :)
Originariamente inviato da matpez
Il mio è fatto in VB6 per cui si può fare benissimo, ora spiegarti in poche righe nn è semplice, prova a vedere se trovi in giro per la rete dei tutorial che spiegano come fare gli OCX in VB6
Questo pomeriggio ho cercato un po' ma niente... domani cerco meglio. Dubito non sia spiegato da nessuna parte.
Se vuoi ti passo il sorgente di Cards.ocx cosi vedi com'è fatto e magari impari a farli, però mi devi rimandare la mail in pvt...tx :)
Originariamente inviato da matpez
Se vuoi ti passo il sorgente di Cards.ocx cosi vedi com'è fatto e magari impari a farli, però mi devi rimandare la mail in pvt...tx :)
Grazie mille!
La mia mail è qualche post sopra, comunque è triacjr@hotmail.com.
Mi spiace di non poter ricambiare dandoti qualche sorgente.
L'unico lavoro "serio" che ho fatto è un programma che riconosce quale carattere hai scritto. La scrittura del carattere avviene con il mouse su una picture e lui ti dice quale carattere hai scritto. L'unica nota è che i caratteri vanno immessi come se scrivessi su un palmare (percui alcuni sono un po' diversi e c'è l'obbligo della direzione). Se ti interessa dimmelo, anche se dubito sia un programma che interessi. :D
Ciao. :)
Originariamente inviato da TriacJr
Questa non la capisco...
Ho aperto un nuovo progetto, e sul form ho messo una picture.
Fatto questo ho inserito il seguente codice:
Private Sub Picture1_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single)
If Button = 1 Then
Picture1.Move X, Y
End If
End Sub
Come fa a non andare?! Mi sfarfalla tutto l'oggetto che dovrebbe spostarsi...
Ciao. :)
Mi autoquoto. :D
Sono un cretino... il codice era giusto, ma dovevo chiamarlo nella funzione del Form, altrimenti è ovvio che saltava come un pazzo. :muro:
Comunque io non demordo e prima o poi riuscirò a fare scala 40 on line. :) o almeno spero... :D
Ciao. :)
vBulletin® v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.