Springen naar inhoud


- - - - -
VS 2012 SOLVED

Winsock In 2012

VS2012 Winsock

  • Log in a.u.b. om te beantwoorden
Er zijn 25 reacties in dit onderwerp

#1 FrankGS

FrankGS

    Starting Developer

  • Leden
  • 21 berichten
    Laatst bezocht 06 Mar 2013 12:57

Geplaatst op 19 January 2013 - 15:17


Hoi,
Ik zou graag mijn project van 2010 omzetten naar 2012 op tablet.
Maar nu doet zich het volgende probleem voor
Winsock zit niet meer in VB 2012  hoe lost ik dit op?

dit is bv de code die ik gebruik voor mijn sturingen.

Visual Basic Code:
AxWinsock1.RemoteHost = "192.1.1.222"
			AxWinsock1.RemotePort = 10002
			AxWinsock1.Connect()
			AxWinsock1.SendData("@021" & vbCr)
			home24.Text = AxWinsock1.CtlState

Veranderd door RedThread, 28 January 2013 - 23:25.
Code tussen de juiste tags geplaatst.


#2 Benno

Benno

    Master Developer

  • Leden
  • PipPipPipPipPip
  • 949 berichten
    Laatst bezocht 10 Aug 2014 13:16
  • LocatieGyor, Magyarország

Geplaatst op 19 January 2013 - 17:43

De System.Net namespace heeft alles wat je nodig hebt.

#3 FrankGS

FrankGS

    Starting Developer

  • Leden
  • 21 berichten
    Laatst bezocht 06 Mar 2013 12:57

Geplaatst op 19 January 2013 - 18:17

Bericht bekijkenBenno, op 19 January 2013 - 17:43, zei:

De System.Net namespace heeft alles wat je nodig hebt.
Is daar een goede docu van?
Ik ben al even aan het zoeken hoe ik bovenstaande moet gaan omzetten, maar kom er momenteel niet uit.

#4 pascalbianca

pascalbianca

    Webmaster/Admin

  • Webmaster
  • 4096 berichten
    Laatst bezocht 24 Aug 2014 20:16
  • LocatieSusteren, Nederland, Midden Limburg.
Inzender

Geplaatst op 19 January 2013 - 21:26

In System.Net zit TcpListener.
Hier staat er uileg ervan met voorbeeld.: http://msdn.microsof...cplistener.aspx

Wat is het gezegde in Ontwikkeling van software.: Er zijn vele wegen die naar Rome leiden, de kunst is de goede te vinden.
email : pascalbianca@vbib.be
of email : webmaster@vbib.be
MSN.:: pmhaschuffelers@hotmail.com
Volg ook mijn Raspberry Pi Blog.:: link


Geplaatste afbeelding


Huisregels - Tutorials - VS 2012 Express - Keybinding Posters - Code Tags gebruiken - LessThenDot - MSDN


*** If you like you're solution or appriciate the crew's effort, please click on the facebook like or the Google + button ***


#5 FrankGS

FrankGS

    Starting Developer

  • Leden
  • 21 berichten
    Laatst bezocht 06 Mar 2013 12:57

Geplaatst op 19 January 2013 - 23:22

Bericht bekijkenpascalbianca, op 19 January 2013 - 21:26, zei:

In System.Net zit TcpListener.
Hier staat er uileg ervan met voorbeeld.: http://msdn.microsof...cplistener.aspx
Ik ben me de hele avond al aan het verdiepen in deze materie maar het lukt me niet.
Wie kan me eens op weg helpen en de code overzetten in .net zodat ik een voorbeeld heb?
Ik denk dat ik de verkeerde mindset heb vrees ik

De connectie heb ik al maar het gedeelte om informatie naar het adres te zenden lukt me niet.

#6 pascalbianca

pascalbianca

    Webmaster/Admin

  • Webmaster
  • 4096 berichten
    Laatst bezocht 24 Aug 2014 20:16
  • LocatieSusteren, Nederland, Midden Limburg.
Inzender

Geplaatst op 20 January 2013 - 00:04

Er staat toch een mooi voorbeeld hier.: http://msdn.microsof...#code-snippet-2
Met verzenden en ontvangen.

Hoe heb je de connectie nu staan in code?

Wat is het gezegde in Ontwikkeling van software.: Er zijn vele wegen die naar Rome leiden, de kunst is de goede te vinden.
email : pascalbianca@vbib.be
of email : webmaster@vbib.be
MSN.:: pmhaschuffelers@hotmail.com
Volg ook mijn Raspberry Pi Blog.:: link


Geplaatste afbeelding


Huisregels - Tutorials - VS 2012 Express - Keybinding Posters - Code Tags gebruiken - LessThenDot - MSDN


*** If you like you're solution or appriciate the crew's effort, please click on the facebook like or the Google + button ***


#7 FrankGS

FrankGS

    Starting Developer

  • Leden
  • 21 berichten
    Laatst bezocht 06 Mar 2013 12:57

Geplaatst op 20 January 2013 - 11:00

Visual Basic Code:
Imports System.Net.Sockets
Dim clientSocket As New System.Net.Sockets.TcpClient()
clientSocket.Connect("192.168.0.180", 10002)

Label1.Text = clientSocket.Connected


Misschien even wat achtergrond info.
Wat ik aan het doen ben is dus een programmering van een sturing voor de domotica van een huis.
Dit werkt met modules die worden aangestuurd door een 9188E module van   http://topsccc.com/htm/product/product-ipc.htm
deze stuurt op zijn beurt bevoorbeeld een 9060D aan die de telerupttoren aanstuurd.

Veranderd door pascalbianca, 20 January 2013 - 14:54.
Codes tussen tags geplaatst, lees aub de forum regels.


#8 FrankGS

FrankGS

    Starting Developer

  • Leden
  • 21 berichten
    Laatst bezocht 06 Mar 2013 12:57

Geplaatst op 20 January 2013 - 13:11

Zo ver ben ik nu maar de module reageerd niet wat zou ik fout doen?


Visual Basic Code:
Imports System.Net.Sockets
Imports System.Text

Public Class Form1
	Dim clientSocket As New System.Net.Sockets.TcpClient()
	Dim serverStream As NetworkStream
	Dim readData As String
	Dim infiniteCounter As Integer
	Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load

	End Sub


	Private Sub msg()
		If Me.InvokeRequired Then
			Me.Invoke(New MethodInvoker(AddressOf msg))
		Else
			TextBox1.Text = TextBox1.Text + _
	Environment.NewLine + " >> " + readData
		End If
	End Sub

	Private Sub Button2_Click(ByVal sender As System.Object, _
	ByVal e As System.EventArgs) Handles Button2.Click
		readData = "Conected to Server"
		msg()
		clientSocket.Connect("192.168.0.180", 10002)
	End Sub
	Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
		serverStream = clientSocket.GetStream()
		Dim outStream As Byte() = _
	  System.Text.Encoding.ASCII.GetBytes(TextBox2.Text)
		serverStream.Write(outStream, 0, outStream.Length)
		serverStream.Flush()
	End Sub
End Class

Veranderd door pascalbianca, 20 January 2013 - 14:54.
Codes tussen tags geplaatst, lees aub de forum regels.


#9 FrankGS

FrankGS

    Starting Developer

  • Leden
  • 21 berichten
    Laatst bezocht 06 Mar 2013 12:57

Geplaatst op 20 January 2013 - 13:32

yeeeeeahhhh gevonden :)


Ik had de & vbCr vergeten toe te voegen

Visual Basic Code:
System.Text.Encoding.ASCII.GetBytes(TextBox2.Text)[/font][/color]
moest

Visual Basic Code:
System.Text.Encoding.ASCII.GetBytes(TextBox2.Text & vbCr)[/font][/color]
[color=#282828][font=helvetica, arial, sans-serif]Zijn


[color=#282828][font=helvetica, arial, sans-serif]Nu nog het ontvangst gedeelte onder de knie krijgen

Veranderd door pascalbianca, 20 January 2013 - 14:54.
Codes tussen tags geplaatst, lees aub de forum regels.


#10 FrankGS

FrankGS

    Starting Developer

  • Leden
  • 21 berichten
    Laatst bezocht 06 Mar 2013 12:57

Geplaatst op 20 January 2013 - 14:36

Yep heb het voor mekaar.
Maak ik ergens nog foutjes?
Altijd in voor opbouwende kritiek of ideeen

Visual Basic Code:

Imports System.Net.Sockets

Imports System.Text

Public Class Form1
	Dim clientSocket As New System.Net.Sockets.TcpClient()
	Dim serverStream As NetworkStream
	Dim readData As String
	Dim infiniteCounter As Integer
	Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load

	End Sub


	Private Sub msg()
		If Me.InvokeRequired Then
			Me.Invoke(New MethodInvoker(AddressOf msg))
		Else
			TextBox1.Text = Environment.NewLine + readData
		End If
	End Sub

	Private Sub Button2_Click(ByVal sender As System.Object, _
	ByVal e As System.EventArgs) Handles Button2.Click
		readData = "Conected to Server"
		msg()
		clientSocket.Connect("192.168.0.180", 10002)
	End Sub
	Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
		serverStream = clientSocket.GetStream()
		Dim outStream As Byte() = _
	  System.Text.Encoding.ASCII.GetBytes(TextBox2.Text & vbCr)
		serverStream.Write(outStream, 0, outStream.Length)
		serverStream.Flush()

	End Sub

	Private Sub Button3_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button3.Click
		Dim outStream As Byte() = System.Text.Encoding.ASCII.GetBytes("$026" & vbCr)
		Dim buffSize As Integer
		Dim inStream(10024) As Byte
		Dim returndata As String = System.Text.Encoding.ASCII.GetString(inStream)

		serverStream = clientSocket.GetStream()
		serverStream.Write(outStream, 0, outStream.Length)
		serverStream.Flush()
		infiniteCounter = 1
		serverStream = clientSocket.GetStream()
		buffSize = clientSocket.ReceiveBufferSize
		Label1.Text = buffSize
		serverStream.Read(inStream, 0, 5000)
		readData = "" + returndata
		msg()

	End Sub
End Class



#11 pascalbianca

pascalbianca

    Webmaster/Admin

  • Webmaster
  • 4096 berichten
    Laatst bezocht 24 Aug 2014 20:16
  • LocatieSusteren, Nederland, Midden Limburg.
Inzender

Geplaatst op 20 January 2013 - 16:10

Ik zie niet 123 iets wat echt veranderd zou moeten worden.
Maar je ziet , je komt er zelf ook uit als je maar een beetje moeite erin steekt ;)

Wat is het gezegde in Ontwikkeling van software.: Er zijn vele wegen die naar Rome leiden, de kunst is de goede te vinden.
email : pascalbianca@vbib.be
of email : webmaster@vbib.be
MSN.:: pmhaschuffelers@hotmail.com
Volg ook mijn Raspberry Pi Blog.:: link


Geplaatste afbeelding


Huisregels - Tutorials - VS 2012 Express - Keybinding Posters - Code Tags gebruiken - LessThenDot - MSDN


*** If you like you're solution or appriciate the crew's effort, please click on the facebook like or the Google + button ***


#12 FrankGS

FrankGS

    Starting Developer

  • Leden
  • 21 berichten
    Laatst bezocht 06 Mar 2013 12:57

Geplaatst op 20 January 2013 - 16:23

jawel hoor. Maar af en toe moet je eens een andere kijk op die dingen hebben. Ik had echt de verkeerde mindset en dacht nog teveel in de terme van winsock.

Nu heb ik een ander probleem.

Ik had dit eerst als een windows form gedaan. En alles werkt in 2012.

Maar nu wil ik het eens proberen in windows store maar daar kan ik de Imports System.Net.Sockets niet gedaan krijgen.
Die heeft die niet zegt hij.
iemand hier ervaring mee?

#13 Benno

Benno

    Master Developer

  • Leden
  • PipPipPipPipPip
  • 949 berichten
    Laatst bezocht 10 Aug 2014 13:16
  • LocatieGyor, Magyarország

Geplaatst op 20 January 2013 - 18:48

Bericht bekijkenFrankGS, op 20 January 2013 - 16:23, zei:

Maar nu wil ik het eens proberen in windows store maar daar kan ik de Imports System.Net.Sockets niet gedaan krijgen.
Die heeft die niet zegt hij.
iemand hier ervaring mee?
Geen ervaring.
Maar je hebt dit al doorgenomen?

#14 FrankGS

FrankGS

    Starting Developer

  • Leden
  • 21 berichten
    Laatst bezocht 06 Mar 2013 12:57

Geplaatst op 20 January 2013 - 19:38

Bedankt Benno, je hebt me op het goede pad gezet.

jeetje.
Terug van vooraf aan beginnen!!

Is dus een andere namespace en methode.

Waarom veranderen ze dat toch steeds  ......

#15 FrankGS

FrankGS

    Starting Developer

  • Leden
  • 21 berichten
    Laatst bezocht 06 Mar 2013 12:57

Geplaatst op 22 January 2013 - 18:21

Brr nu zit ik vast


ik heb de connectie in windows metro.
Maar het versturen lukt niet en ik zie de fout niet zitten, kan iemand hier eens een blik op leggen?
Ik krijg deze boodschap maar ik kan er geen knoop aan vastmaken
Code:
An exception of type 'System.InvalidOperationException' occurred in Test app bediening.exe but was not handled in user code

Additional information: Er is een methode aangeroepen op een onverwacht tijdstip. (Uitzondering van HRESULT: 0x8000000E)

dit is de code

Visual Basic Code:
 Private Async Sub btsend_Click(sender As Object, e As RoutedEventArgs) Handles btsend.Click
Dim s As New Windows.Networking.Sockets.StreamSocket
Dim writer As New Windows.Storage.Streams.DataWriter(s.OutputStream)
Dim sendmes As String = send.Text & vbCr
writer.WriteString(sendmes)
Await writer.StoreAsync()
writer.DetachStream()
End Sub


#16 FrankGS

FrankGS

    Starting Developer

  • Leden
  • 21 berichten
    Laatst bezocht 06 Mar 2013 12:57

Geplaatst op 23 January 2013 - 12:40

YES!!! Heb hem werkende  :-P

Visual Basic Code:
Imports Windows.Networking.Sockets
Imports Windows.ApplicationModel.Core
Imports Windows.Networking
Imports Windows.Storage.Streams

Public NotInheritable Class MainPage
Inherits Page

Protected Overrides Sub OnNavigatedTo(e As Navigation.NavigationEventArgs)

End Sub

Private Async Sub BTConnect_Click(sender As Object, e As RoutedEventArgs) Handles BTConnect.Click
If CoreApplication.Properties.ContainsKey("clientSocket") Then
BTConnect.Content = "Already Connected"
BTConnect.Background.Opacity = 50
Return
End If
Dim socket As New StreamSocket()
CoreApplication.Properties.Add("clientSocket", socket)
Try
Await socket.ConnectAsync(New HostName(TXTIP.Text), TXTPOORT.Text)
BTConnect.Content = "Connected"
Catch exception As Exception
If SocketError.GetStatus(exception.HResult) = SocketErrorStatus.Unknown Then
Throw
End If
BTConnect.Content = "Connect fail"
End Try
End Sub

Private Async Sub BTSEND_Click(sender As Object, e As RoutedEventArgs) Handles BTSEND.Click


Dim outValue As Object = Nothing
Dim socket As StreamSocket
If Not CoreApplication.Properties.TryGetValue("clientSocket", outValue) Then
TXTBLMESS.Text = "first the server"
Return
End If

socket = DirectCast(outValue, StreamSocket)

' Create a DataWriter if we did not create one yet. Otherwise use one that is already cached.
Dim writer As DataWriter
If Not CoreApplication.Properties.TryGetValue("clientDataWriter", outValue) Then
writer = New DataWriter(socket.OutputStream)
CoreApplication.Properties.Add("clientDataWriter", writer)
Else
writer = DirectCast(outValue, DataWriter)
End If

' Write first the length of the string as UINT32 value followed up by the string. Writing data to the writer will just store data in memory.
Dim stringToSend As String = TXTSEND.Text & vbCr
'writer.WriteUInt32(writer.MeasureString(stringToSend))
writer.WriteString(stringToSend)

' Write the locally buffered data to the network.
Try
Await writer.StoreAsync()
TXTBLMESS.Text = """" & stringToSend & """ sent successfully."
Catch exception As Exception
' If this is an unknown status it means that the error if fatal and retry will likely fail.
If SocketError.GetStatus(exception.HResult) = SocketErrorStatus.Unknown Then
Throw
End If

TXTBLMESS.Text = "Send failed with error: " & exception.Message
End Try
End Sub
End Class


#17 FrankGS

FrankGS

    Starting Developer

  • Leden
  • 21 berichten
    Laatst bezocht 06 Mar 2013 12:57

Geplaatst op 23 January 2013 - 16:14

Nu het lees gedeelte nog , das een ander paar mouwen.

#18 FrankGS

FrankGS

    Starting Developer

  • Leden
  • 21 berichten
    Laatst bezocht 06 Mar 2013 12:57

Geplaatst op 24 January 2013 - 23:22

Ik zit vast.

Wat doe ik fout in deze code , ik heb er een paar regels in gezet zodat ik kan zien waar hij stopt.
En de code loopt hier vast. Ik krijg geen foutmelding maar hij loopt gewoon niet door
Dim stringLength As UInteger = reader.ReadUInt32()

Arrrrrrrrggg, heeft iemand meer inzicht?


Visual Basic Code:
Private Async Function Button_Click_1(sender As Object, e As RoutedEventArgs) As Task

Dim outValue As Object = Nothing
Dim socket As StreamSocket
If Not CoreApplication.Properties.TryGetValue("clientSocket", outValue) Then
TXTBLMESS.Text = "first the server"
Return
End If
socket = DirectCast(outValue, StreamSocket)
probeer.Text = probeer.Text & "e"
Dim writer As DataWriter
If Not CoreApplication.Properties.TryGetValue("clientDataWriter", outValue) Then
writer = New DataWriter(socket.OutputStream)
CoreApplication.Properties.Add("clientDataWriter", writer)
Else
writer = DirectCast(outValue, DataWriter)
End If
Dim stringToSend As String = "$026" & vbCr
writer.WriteString(stringToSend)
Try
Await writer.StoreAsync()
TXTBLMESS.Text = stringToSend & " sent successfully."
probeer.Text = probeer.Text & "s"
Catch exception As Exception
If SocketError.GetStatus(exception.HResult) = SocketErrorStatus.Unknown Then
Throw
End If
TXTBLMESS.Text = "Send failed with error: " & exception.Message
End Try
probeer.Text = probeer.Text & "a"
Dim reader As New DataReader(socket.InputStream)
Dim stringLength As UInteger = reader.ReadUInt32()
Dim actualStringLength As UInteger = Await reader.LoadAsync(stringLength)
probeer.Text = probeer.Text & "b"
probeer.Text = probeer.Text & "u"
probeer.Text = reader.ReadString(actualStringLength)
probeer.Text = probeer.Text & "t"
'Try
'Catch exception As Exception
' If this is an unknown status it means that the error is fatal and retry will likely fail.
'If SocketError.GetStatus(Exception.HResult) = SocketErrorStatus.Unknown Then
'Throw
' End If

' TXTRECIEVE.Text = ("Read stream failed with error: " & Exception.Message)
' End Try
probeer.Text = TXTRECIEVE.Text & "ok"
End Function


#19 FrankGS

FrankGS

    Starting Developer

  • Leden
  • 21 berichten
    Laatst bezocht 06 Mar 2013 12:57

Geplaatst op 26 January 2013 - 12:19

Niemand een gedachte?

#20 pascalbianca

pascalbianca

    Webmaster/Admin

  • Webmaster
  • 4096 berichten
    Laatst bezocht 24 Aug 2014 20:16
  • LocatieSusteren, Nederland, Midden Limburg.
Inzender

Geplaatst op 26 January 2013 - 15:02

Dus hier werkte het wel nog ? http://www.vbib.be/i...012/#entry66093

Wat is het gezegde in Ontwikkeling van software.: Er zijn vele wegen die naar Rome leiden, de kunst is de goede te vinden.
email : pascalbianca@vbib.be
of email : webmaster@vbib.be
MSN.:: pmhaschuffelers@hotmail.com
Volg ook mijn Raspberry Pi Blog.:: link


Geplaatste afbeelding


Huisregels - Tutorials - VS 2012 Express - Keybinding Posters - Code Tags gebruiken - LessThenDot - MSDN


*** If you like you're solution or appriciate the crew's effort, please click on the facebook like or the Google + button ***


#21 FrankGS

FrankGS

    Starting Developer

  • Leden
  • 21 berichten
    Laatst bezocht 06 Mar 2013 12:57

Geplaatst op 26 January 2013 - 15:32

Bericht bekijkenpascalbianca, op 26 January 2013 - 15:02, zei:

Dus hier werkte het wel nog ? http://www.vbib.be/i...012/#entry66093

Het connectie gedeelte en het zend gedeelte werkt volledig. Das dus die code.
Maar het onvangst(recieve) gedeelte dat krijg ik niet voor elkaar.

Dus ik verzend de code $026 naar de server en dan geeft de server mij normaal een status van de relais.
Maar dat krijg ik dus niet. Iets moet dus nog niet goed werken.

In deze code die ik heb gemaakt werkt dat dus wel Visual Basic Code:
 Private Sub Button3_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button3.Click
Dim outStream As Byte() = System.Text.Encoding.ASCII.GetBytes("$026" & vbCr)
Dim buffSize As Integer
Dim inStream(10024) As Byte
Dim returndata As String = System.Text.Encoding.ASCII.GetString(inStream)

serverStream = clientSocket.GetStream()
serverStream.Write(outStream, 0, outStream.Length)
serverStream.Flush()
infiniteCounter = 1
serverStream = clientSocket.GetStream()
buffSize = clientSocket.ReceiveBufferSize
Label1.Text = buffSize
serverStream.Read(inStream, 0, 5000)
readData = "" + returndata
msg()

End Sub 


#22 FrankGS

FrankGS

    Starting Developer

  • Leden
  • 21 berichten
    Laatst bezocht 06 Mar 2013 12:57

Geplaatst op 27 January 2013 - 20:34

Ben weer iets verder
heb de code wat veranderd en nu krijg ik een waarde terug. wat heb ik gedaan.
Ik heb dus deze code

Dim stringLength As UInteger =reader.ReadUInt32()
vervangen door
Dim stringLength As UInteger = reader.ReadByte

Maar als ik nu terug op de knop druk blijft hij terug hangen op deze lijn.
Dim readLength As UInteger = Await reader.LoadAsync(4)

Wat doe ik verkeerd?


Visual Basic Code:
 Private Async Function Button_Click_1(sender As Object, e As RoutedEventArgs) As Task

Dim outValue As Object = Nothing
Dim socket As StreamSocket
If Not CoreApplication.Properties.TryGetValue("clientSocket", outValue) Then
TXTBLMESS.Text = "first the server"
Return
End If
socket = DirectCast(outValue, StreamSocket)
probeer.Text = probeer.Text & "e"
Dim writer As DataWriter
If Not CoreApplication.Properties.TryGetValue("clientDataWriter", outValue) Then
writer = New DataWriter(socket.OutputStream)
CoreApplication.Properties.Add("clientDataWriter", writer)
Else
writer = DirectCast(outValue, DataWriter)
End If
Dim stringToSend As String = "$026" & vbCr
writer.WriteString(stringToSend)
Try
Await writer.StoreAsync()
TXTBLMESS.Text = stringToSend & " sent successfully."
probeer.Text = probeer.Text & "s"
Catch exception As Exception
If SocketError.GetStatus(exception.HResult) = SocketErrorStatus.Unknown Then
Throw
End If
TXTBLMESS.Text = "Send failed with error: " & exception.Message
End Try

probeer.Text = probeer.Text & "a"
Dim reader As New DataReader(socket.InputStream)
reader.InputStreamOptions = InputStreamOptions.Partial
probeer.Text = probeer.Text & "b"
Dim readLength As UInteger = Await reader.LoadAsync(4)
probeer.Text = probeer.Text & "u"
Dim test As String
Dim stringLength As UInteger = reader.ReadByte
probeer.Text = probeer.Text & "t"
Dim actualStringLength As UInteger = Await reader.LoadAsync(stringLength)



probeer.Text = reader.ReadString(actualStringLength)




'Try
'Catch exception As Exception
' If this is an unknown status it means that the error is fatal and retry will likely fail.
'If SocketError.GetStatus(Exception.HResult) = SocketErrorStatus.Unknown Then
'Throw
' End If

' TXTRECIEVE.Text = ("Read stream failed with error: " & Exception.Message)
' TXTRECIEVE.Text = ("Read stream failed with error: " & Exception.Message)
' End Try
probeer.Text = probeer.Text & "ok"

End Function


#23 pascalbianca

pascalbianca

    Webmaster/Admin

  • Webmaster
  • 4096 berichten
    Laatst bezocht 24 Aug 2014 20:16
  • LocatieSusteren, Nederland, Midden Limburg.
Inzender

Geplaatst op 27 January 2013 - 21:02

Citeren

Ben weer iets verder
heb de code wat veranderd en nu krijg ik een waarde terug. wat heb ik gedaan.
Ik heb dus deze code

Dim stringLength As UInteger =reader.ReadUInt32()
vervangen door
Dim stringLength As UInteger = reader.ReadByte

Maar als ik nu terug op de knop druk blijft hij terug hangen op deze lijn.
Dim readLength As UInteger = Await reader.LoadAsync(4)

Ik heb geen idee of het daar aan ligt maar tis uiteraard te proberen.
Je hebt het aangepast naar
Visual Basic Code:
Dim stringLength As UInteger = reader.ReadByte

Maak van die UInteger een gewone integer en bij
Visual Basic Code:
Dim readLength As UInteger = Await reader.LoadAsync(4)
en maak hiervan
Visual Basic Code:
Dim readLength As Integer= Await reader.LoadAsync(4)

Maar nogmaals ik weet het niet zeker.
Hier zijn nog eens enkele intressante links over winsock in vb.net.:
* http://social.msdn.m...ab-014d971249ba
* http://tech.reboot.p...read.php?tid=86
* http://www.freevbcod...ode.asp?ID=7557

Wat is het gezegde in Ontwikkeling van software.: Er zijn vele wegen die naar Rome leiden, de kunst is de goede te vinden.
email : pascalbianca@vbib.be
of email : webmaster@vbib.be
MSN.:: pmhaschuffelers@hotmail.com
Volg ook mijn Raspberry Pi Blog.:: link


Geplaatste afbeelding


Huisregels - Tutorials - VS 2012 Express - Keybinding Posters - Code Tags gebruiken - LessThenDot - MSDN


*** If you like you're solution or appriciate the crew's effort, please click on the facebook like or the Google + button ***


#24 FrankGS

FrankGS

    Starting Developer

  • Leden
  • 21 berichten
    Laatst bezocht 06 Mar 2013 12:57

Geplaatst op 28 January 2013 - 12:38

Heb hem draaiende.

Poef man wat een getest en denkwerk
Wat blijkt nu. Ik moet dus bij elke vraag naar de server de connectie opbouwen en als het gedaan is ook afsluiten.
Dan werkt het.
Waarom zou dit kunnen zijn?
Is er een manier om bv de buffer leeg te maken? ik vermoed dat het hier iets mee te maken heeft



Dit is de codeVisual Basic Code:
 Async Function Status_Rl() As Task

'Connectie met de server
Dim socket As New StreamSocket()
CoreApplication.Properties.Add("clientSocket", socket)
Try
Await socket.ConnectAsync(New HostName(ipadres), poort)
Catch exception As Exception
If SocketError.GetStatus(exception.HResult) = SocketErrorStatus.Unknown Then
Throw
End If
End Try

'Verzenden van boodschap
Dim outValue As Object = Nothing
If Not CoreApplication.Properties.TryGetValue("clientSocket", outValue) Then
Return
End If
socket = DirectCast(outValue, StreamSocket)
Dim writer As DataWriter
If Not CoreApplication.Properties.TryGetValue("clientDataWriter", outValue) Then
writer = New DataWriter(socket.OutputStream)
CoreApplication.Properties.Add("clientDataWriter", writer)
Else
writer = DirectCast(outValue, DataWriter)
End If
Dim stringToSend As String = "$026" & vbCr
writer.WriteString(stringToSend)
Try
Await writer.StoreAsync()
Catch exception As Exception
If SocketError.GetStatus(exception.HResult) = SocketErrorStatus.Unknown Then
Throw
End If
End Try

'Start het ontvangen
Dim reader As New DataReader(socket.InputStream)
reader.InputStreamOptions = InputStreamOptions.Partial
Dim actualStringLength As Integer = Await reader.LoadAsync(5000)

relais_status = reader.ReadString(actualStringLength)

'Beeindig de connectie
If CoreApplication.Properties.TryGetValue("clientDataWriter", outValue) Then
CoreApplication.Properties.Remove("clientDataWriter")
Dim dataWriter As DataWriter = DirectCast(outValue, DataWriter)
dataWriter.DetachStream()
dataWriter.Dispose()
End If

If CoreApplication.Properties.TryGetValue("clientSocket", outValue) Then
CoreApplication.Properties.Remove("clientSocket")
socket.Dispose()
End If

If CoreApplication.Properties.ContainsKey("connected") Then
CoreApplication.Properties.Remove("connected")
End If

End Function


#25 Vozzie

Vozzie

    Moderator

  • Moderators
  • 1854 berichten
    Laatst bezocht 19 Jul 2014 03:01
Inzender

Geplaatst op 06 February 2013 - 19:24

Hy,

Bericht bekijkenFrankGS, op 28 January 2013 - 12:38, zei:

Heb hem draaiende.
...
Wat blijkt nu. Ik moet dus bij elke vraag naar de server de connectie opbouwen en als het gedaan is ook afsluiten.
...
Waarom zou dit kunnen zijn?

Het kan ook zijn dat, je server, de connectie sluit en je daarom telkens opnieuw de connectie moet maken... Alvast veronderstel ik dat je connectie verloren gaat na het sturen van data.

Zelf geen ervaring met TCP/IP in het framework dat jij gebruikt...

Groetjes
Stappen, keuzes en herhaling combineren is programmeren.
Explicit, Strict and don't Infer

#26 Ludi

Ludi

    Professional Developer

  • Leden
  • PipPipPipPip
  • 316 berichten
    Laatst bezocht 15 Aug 2014 14:57

Geplaatst op 08 March 2013 - 00:24

Lees ik het goed dat je een programma hebt gemaakt voor de tablet ?
Zelf ben ik pas met vb 2012 begonnen 4 mnd geleden. Maar de vraag naar een versie van mij programma voor de tablet is zeer groot.
Ik zou bijna willen vragen of hier niet een aparte "Rubriek" van te maken is.
Maar om een programma te maken voor de tablet dan zit ik vol met vragen.
Is zo'n programma voor Android .....
Waar zou ik dan moet beginnen..





Ook met taq VS 2012 SOLVED, VS2012, Winsock voorzien

0 gebruiker(s) lezen dit onderwerp

0 lid(leden), 0 bezoeker(s), 0 anonieme gebruikers

Inloggen


[VS 2012 SOLVED] Untitled 1

Hosting provided by Combell
Met dank aan Jürgen voor de jarenlange inzet van visualbasic.be (anno dec 2000)
Met dank aan Mike en Ronneke voor de jarenlange inzet van vbib.be (anno dec 2010)
vbib.be - vbnet.be - vbdotnet.be - visualbasic.be