Novo

Forum kao aplikacija na telefonu

Dodajte forum na početni ekran i koristite ga kao aplikaciju, sa menijem na dnu ekrana.

nešto o winsocku... molim vas, riješite ovaj problem

  • 6 odgovora
  • 4.038 pregleda

Najnovija ↓

nešto o winsocku... molim vas, riješite ovaj problem 27.12.2004. u 22:23 · pre 265 meseci #1
počeo sam raditi sa winsockom.. spajanje računala itd.
sad bih htio da kad u jednom prozoru na jednom računalu upišem naslov poruke, poruku i znak da mi se ta poruka prikaže na drugom računalu.
npr.
Code:
MsgBox txtPoruka,Znak,txtNaslov

no, problem je u tome što mi se pojavi poruka koja sve to stavlja u jedan sadržaj poruke..
da vam malo pojasnim ako sam bio nerazumljiv:
na drugom računalu mi se ne pojavi poruka koja ima naslov definiran u formi na drugom računalu i koja nema znak koji je definiran na formi na drugom računalu,
nego mi se pojavi poruka koja stavlja sve to u sadržaj jedne poruke, dakle pojavi se poruka bez naslova, bez znaka, sa sadržajem "txtPoruka, Znak, txtNaslov" (bez navodnika)

evo koda:
-dakle na prvom računalu gdje se bira koji će biti naslov, sadržaj i znak:

Code:
Private Sub cmdPosalji_Click()
If vbCritical.Value = True Then
Winsock1.SendData txtPoruka.Text & ", vbCritical," & txtNaslov.Text
ElseIf vbQuestion.Value = True Then
Winsock1.SendData txtPoruka.Text & ", vbQuestion," & txtNaslov.Text
ElseIf vbExclamation.Value = True Then
Winsock1.SendData txtPoruka.Text & ", vbExclamation," & txtNaslov.Text
ElseIf vbInformation.Value = True Then
Winsock1.SendData txtPoruka.Text & ", vbInformation," & txtNaslov.Text
End If
End Sub


-a na drugoj formi koja bi trebala biti na računalu gdje će se ta poruka pokazati:
Code:
Private Sub wsChat_DataArrival(ByVal bytesTotal As Long)
Dim incoming As String
wsChat.GetData incoming
MsgBox incoming
End Sub
Potpis
::::gvero::::
Re: nešto o winsocku... molim vas, riješite ovaj problem 28.12.2004. u 02:02 · pre 265 meseci #2
Code:

wsChat.GetData incoming
MsgBox incoming


Ovo ne moze ovako da se uradi. Greska je u tome sto "incoming" predstavlja jedan string tj jedan parametar u MsgBox funkciji. Da bi dobio to sto hoces moras da u stringu koji saljes podesis neki separator po kom ces deliti dobijeni string na vise polja. Evo jednog primera (ovaj kod stavi u program koji salje poruku)

Code:
Winsock1.SendData txtPoruka.Text & ";" & vbCritical & ";" & txtNaslov.Text

Kao sto vidis u stringu se nalazi
- tekst poruke
- zatim separator koji sam ja definisao kao karakter ";". Naravno ti stavi koji god hoces karakter ili grupu karaktera
- zatim vrednost vbCritical. Obrati paznju da ovo nije pod navodnicima jer ako stavis pod navodnike VB ce to tretirati kao string i poslace to kao string. Ovako VB to prvo pretvori u vrednost i onda posalje samo tu vrednost
- zatim opet separator
- i na kraju Caption poruke

kod da ovo ispises u client programu bi bio ovaj
Code:
Private Sub wsChat_DataArrival(ByVal bytesTotal As Long)
Dim incoming As String
dim IncommingArray() as String
wsChat.GetData incoming

IncommingArray = Split(IncommingArray, ";") 
' karakter ";" predstavlja separator koji si koristio pri slanju i mora dabude isti
' za vise inforamcija o Split funkciji pogledaj MSDN

MsgBox IncommingArray(0), IncommingArray(1), IncommingArray (2) ' i na kraju samo da prikazemo poruku
End Sub
Potpis
Naučio sam...
Da je važnije biti ljubazan nego biti u pravu
Re: nešto o winsocku... molim vas, riješite ovaj problem 30.12.2004. u 19:23 · pre 265 meseci #3
Hvala na pomoći.

Ali, kad idem kompajlirati program, ja vi se greška:
Citat:
Compile error: Type mismatch
i označena riječ IncomingArray u retku
IncommingArray = Split(IncommingArray, ";")
neće mi se pojavi poruka...
zašto?

usput, kad bih imao još nekoliko akcija, bih li za svaku trebao posebnu Winsock kontrolu ili...?

hvala!
Potpis
::::gvero::::
Re: nešto o winsocku... molim vas, riješite ovaj problem 30.12.2004. u 23:15 · pre 265 meseci #4
Ok moja greska. Treba da bise

Code:
Private Sub wsChat_DataArrival(ByVal bytesTotal As Long)
Dim incoming As String
dim IncommingArray() as String
wsChat.GetData incoming

IncommingArray = Split(incoming, ";") 
....
Potpis
Naučio sam...
Da je važnije biti ljubazan nego biti u pravu
Re: nešto o winsocku... molim vas, riješite ovaj problem 31.12.2004. u 16:36 · pre 265 meseci #5
puno ti hvala na pomoći, vujkev!

još mi molim te samo odgovori na pitanje:
kada bih imao još akcija koje bih morao stavljati u data_arrival bih li trebao drugu winsock kontrolu ili bih sve pisao u istu?
kako?

hvala
Potpis
::::gvero::::
Re: nešto o winsocku... molim vas, riješite ovaj problem 02.01.2005. u 19:38 · pre 265 meseci #6
molim te vujkev pom0zi!

primjer:
imam u projectu taj msgbox i npr. neki chat.
trebam li za taj chat posebnu winsock kontrolu pa svaki put otvarati vezu tom kontrolom ili se može sve sa jednom?

hvala
Potpis
::::gvero::::
Re: nešto o winsocku... molim vas, riješite ovaj problem 04.01.2005. u 16:24 · pre 265 meseci #7
evo još jednog problema:
kada želim osim znaka dodati recimo da mi budu u poruci i buttoni recimo Yes i No:
obično bi to išlo ovako
Code:
MsgBox "Neka poruka",vbCritical+vbYesNo,"Neki naslov"

kad želim to napraviti na relaciji Client-Server, onda u Clientu upisujem ovo:
Code:
Winsock1.SendData txtPoruka.Text & ";" & vbCritical & ";" & vbYesNo & ";" & txtNaslov.Text

...i tu nema problema...ali...

kad u Serveru upišem:
Code:
Private Sub wsServer_DataArrival(ByVal bytesTotal As Long)
Dim incoming As String
Dim IncommingArray() As String
wsServer.GetData incoming
IncommingArray = Split(incoming, ";") 
MsgBox IncommingArray(0), IncommingArray(1) + IncomingArray(2), IncommingArray(3)  
End Sub


...problem mi se javlja u ovom plusu između IncomingArraya 1 i 2. ne mogu prikazati recimo znak i vbYesNo.

MOLIM VAS, pomozite!

hvala vam
Potpis
::::gvero::::
Prijavite se da biste odgovorili u ovoj temi.PrijavaRegistracija

Premeštanje teme