Fetstil Fetstil Kursiv Understrykning linje färgläggning tabellverk Punktlista Nummerlista Vänster Centrerat högerställt Utfyllt Länk Bild htmlmode
  • Forum & Blog
    • Forum - översikt
      • .Net
        • asp.net generellt
        • c#
        • vb.net
        • f#
        • silverlight
        • microsoft surface
        • visual studio .net
      • databaser
        • sql-server
        • databaser
        • access
        • mysql
      • mjukvara klient
        • datorer och komponenter
        • nätverk, lan/wan
        • operativsystem
        • programvaror
        • säkerhet, inställningar
        • windows server
        • allmänt
        • crystal reports
        • exchange/outlook
        • microsoft office
      • mjukvara server
        • active directory
        • biztalk
        • exchange
        • linux
        • sharepoint
        • webbservers
        • sql server
      • appar (win/mobil)
      • programspråk
        • c++
        • delphi
        • java
        • quick basic
        • visual basic
      • scripting
        • asp 3.0
        • flash actionscript
        • html css
        • javascript
        • php
        • regular expresssion
        • xml
      • spel och grafik
        • DirectX
        • Spel och grafik
      • ledning
        • Arkitektur
        • Systemutveckling
        • krav och test
        • projektledning
        • ledningsfrågor
      • vb-sektioner
        • activeX
        • windows api
        • elektronik
        • internet
        • komponenter
        • nätverk
        • operativsystem
      • övriga forum
        • arbete karriär
        • erbjuda uppdrag och tjänster
        • juridiska frågor
        • köp och sälj
        • matematik och fysik
        • intern information
        • skrivklåda
        • webb-operatörer
    • Posta inlägg i forumet
    • Chatta med andra
  • Konto
    • Medlemssida
    • Byta lösenord
    • Bli bonsumedlem
    • iMail
  • Material
    • Tips & tricks
    • Artiklar
    • Programarkiv
  • JOBB
  • Student
    • Studentlicenser
  • KONTAKT
    • Om pellesoft
    • Grundare
    • Kontakta oss
    • Annonsering
    • Partners
    • Felanmälan
  • Logga in

Hem / Forum översikt / inlägg

Posta nytt inlägg


Winsock skickar trasiga data?

Postades av 2003-04-14 14:14:56 - Peter Carlsson, i forum visual basic - allmänt, Tråden har 1 Kommentarer och lästs av 638 personer

Hej på Er!

Nu håller jag på att bli galen!
Winsock... need i say more?

Jag har gjort en client/server applikation som skickar strängar mellan sig.
Klienten skickar en stränge med IP-Adress och SQL-Fråga, och server
ska sedan utföra denna SQL-Fråga mot en databas och skicka
tillbaka svaret via winsock i strängar.

Problemet är när svaret kommer tillbaka via winsock till klienten
så är datat ibland korrupt. Inte alltid, men ibland.

Koden ser ut enligt följande
---------------------------------
Kod på servern för att skicka data:
<code>
Public Sub SendInfo(strData As String, Index As Integer)
Dim aryDataInfo
Dim strIPAdress As String
Dim strSQLQuery As String
Dim rsTemp As Recordset
Dim DataConn As New clsdataconn

aryDataInfo = Split(strData, "§", -1, vbTextCompare)
strIPAdress = Trim(aryDataInfo(1))
strSQLQuery = Trim(aryDataInfo(2))
Set rsTemp = DataConn.GetRecordset(strSQLQuery, strIPAdress)

If rsTemp.EOF Then
lblStatus.Caption = "Svaret från automaten innehöll ingen data..!"
Sockets.SendData Index, "TRANS_START" & Chr$(0)
Sockets.SendData Index, "TRANS_STOP" & Chr$(0)
DoEvents
Exit Sub
End If

Dim aryEntry
Dim aryText
Dim intCounter As Integer
Dim intAryCounter As Integer

Sockets.SendData Index, "TRANS_START" & Chr$(0)
lblStatus.Caption = "Börjar skicka data till klienten... OK!"
Do While Not rsTemp.EOF
lblStatus.Caption = "Svar från automaten: " & rsTemp(3)
Sockets.SendData Index, Replace(fcnDecodeATMData(rsTemp(0), rsTemp(1), rsTemp(2), rsTemp(3), rsTemp(4), rsTemp(5), rsTemp(6), rsTemp(7)), vbCrLf, "%") & Chr$(0)
'Datat som skickar på raden ovan ser ut ungefär så här: "120125 1201 BEGÄRT . 900SEK 2029§3§UTTAGSBEGÄRAN" & Chr$(0)
DoEvents
rsTemp.MoveNext
Loop
lblStatus.Caption = "Slutfört överföring till klienten... OK!"
Sockets.SendData Index, "TRANS_STOP" & Chr$(0)
Set rsTemp = Nothing
End Sub
</code>

Koden på klienten för att ta emot data:
<code>
Private Sub Sockets_DataArrival(ByVal bytesTotal As Long)
Dim Msg As String
Dim Pieces() As String
Dim aryStrings() As String
Dim i As Integer
Dim strFulSplit
Dim intFulSplitCounter
Dim liJournal As ListItem

Sockets.GetData Msg

Pieces = Split(Msg, Chr$(0))
For i = 0 To UBound(Pieces) - 1
If Mid(Pieces(i), 1, 11) = "TRANS_START" Then
ShowStatus "Väntar på data från automaten... Vänta!"
ElseIf Mid(Pieces(i), 1, 10) = "TRANS_STOP" Then
ShowStatus "Samtliga data från automaten överförda!"
Me.MousePointer = vbNormal
Else
If InStr(1, Pieces(i), "§", vbTextCompare) = 0 Then
MsgBox "Fel i data... Stänger funktionen"
Exit Sub
End If
aryStrings = Split(Pieces(i), "§", , vbTextCompare)
If InStr(1, aryStrings(0), "%") Then
strFulSplit = Split(aryStrings(0), "%", , vbTextCompare)
For intFulSplitCounter = 0 To UBound(strFulSplit)
Set liJournal = lwJournal.ListItems.Add(, , strFulSplit(intFulSplitCounter))
Next intFulSplitCounter
Else
Set liJournal = lwJournal.ListItems.Add(, , aryStrings(0))
End If
liJournal.ListSubItems.Add , , aryStrings(1)
liJournal.ListSubItems.Add , , aryStrings(2)

End If
Next i
End Sub
</code>

Normalt så ser varje rad ut så här som servern skickar till klienten:
<code>
120125 1201 BEGÄRT . 900SEK 2029§3§UTTAGSBEGÄRAN
120125 1201 BEGÄRT . 900SEK 2029§3§UTTAGSBEGÄRAN
120125 1201 BEGÄRT . 900SEK 2029§3§UTTAGSBEGÄRAN
</code>
Men rätt som det är så kommer en sån här snutt:
<code>
SBEGÄRAN
</code>

Har nån någon som helst aning om vad jag gör för fel?

Tacksam för snabba svar!

Hälsningar
Peter Carlsson


Svara

Sv: Winsock skickar trasiga data?

Postades av 2003-04-15 14:01:17 - Peter Carlsson

Någon som har den minsta aning?!

// Peter


Svara

Nyligen

  • 19:55 kick-off med fokus på hälsa?
  • 19:53 kick-off med fokus på hälsa?
  • 16:24 Föreslå en skönhetsklinik online
  • 16:23 Föreslå en skönhetsklinik online
  • 18:42 Hvor finder man håndlavede lamper
  • 18:41 Hvor finder man håndlavede lamper
  • 16:36 Allt du behöver veta om keramiskt
  • 16:14 Vem anlitar man egentligen när tak

Sidor

  • Hem
  • Bli bonusmedlem
  • Läs artiklar
  • Chatta med andra
  • Sök och erbjud jobb
  • Kontakta oss
  • Studentlicenser
  • Skriv en artikel

Statistik

Antal besökare:
Antal medlemmar:
Antal inlägg:
Online:
På chatten:
4 570 722
27 958
271 751
408
0

Kontakta oss

Frågor runt konsultation, rådgivning, uppdrag, rekrytering, annonsering och övriga ärenden. Ring: 0730-88 22 24 | pelle@pellesoft.se

© 1986-2013 PelleSoft AB. Last Build 4.1.7169.18070 (2019-08-18 10:02:21) 4.0.30319.42000
  • Om
  • Kontakta
  • Regler
  • Cookies