Du bist nicht angemeldet.

Lieber Besucher, herzlich willkommen bei: Banana-Coding.com - Java Knuddels Emulator. Falls dies dein erster Besuch auf dieser Seite ist, lies bitte die Hilfe durch. Dort wird dir die Bedienung dieser Seite näher erläutert. Darüber hinaus solltest du dich registrieren, um alle Funktionen dieser Seite nutzen zu können. Benutze das Registrierungsformular, um dich zu registrieren oder informiere dich ausführlich über den Registrierungsvorgang. Falls du dich bereits zu einem früheren Zeitpunkt registriert hast, kannst du dich hier anmelden.

11

26.08.2011, 06:35

Schonmal dran gedacht, dass nach jedem aufruf das PHP-Script beendet wird? Du musst die Laufzeit des Scriptes erhöhen, sodass du mehrere Anfragen bearbeiten kannst.

Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von »Blizzard« (19.02.2013, 12:27)


12

07.09.2011, 18:00

Deshalb hab ich es mal in vb versucht...

Quellcode

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
Imports System.Net.Sockets

Module Module1

    Sub Main()
        Try
            Dim port As Int32 = 2710
            Dim client As New TcpClient("localhost", port)

            'mit 0x00 Verbindung aufbauen 0x00 = &H0 
            Dim message As Byte() = New Byte() {&H0}
            ' t-Token als Byte array.
            Dim data As [Byte]() = System.Text.Encoding.ASCII.GetBytes("t\0V9.0afi \0http://localhost/\00\01.6.0_26 - 3911\0Java HotSpot(TM) Client VM\0-kzbvc87ti7he-1482lk01tash8,null")
          
            Dim stream As NetworkStream = client.GetStream()
            client.GetStream.Flush()

            
            ' Daten an Server senden
            stream.Write(message, 0, message.Length)
            stream.Write(data, 0, data.Length)

            Console.WriteLine("Sent: {0}", System.Text.Encoding.ASCII.GetString(data))

            ' Daten empfangen
            data = New [Byte](256) {}


            Dim responseData As [String] = [String].Empty


            Dim bytes As Int32 = stream.Read(data, 0, data.Length)
            responseData = System.Text.Encoding.ASCII.GetString(data, 0, bytes)
            Console.WriteLine("Received: {0}", responseData)

        Catch e As ArgumentNullException
            Console.WriteLine("ArgumentNullException: {0}", e)
        Catch e As SocketException
            Console.WriteLine("SocketException: {0}", e)
        End Try

    End Sub

End Module


Nun bekomm ich beim Bananachat Server den fehler:

Unhandled opcode: \0V9.0afi \0http://localhost/\00\0
t(TM) Client VM\0-kzbvc87ti7he-1482lk01tash8,null

13

07.09.2011, 18:04

Ähm, \0 gibts in VB nicht.

..............t" + vbNullChar + "V9.0afi.............
Kein Support per PN. Nur im Forum!

14

07.09.2011, 19:33

Die Länge des Pakets muss vorangestellt werden.

MfG

16

07.09.2011, 20:22

Wäre nett für zukünftige Fragen deinen Code zu posten, könnte man eventuell dann noch in andere Sprachen portieren.
Kein Support per PN. Nur im Forum!

17

07.09.2011, 20:51

wollte ich sowieso machen sobald es perfekt geht :D

bis jetzt kann man sich einloggen und eine nachricht in den channel schreiben. :)


Quellcode

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
Imports System.Net.Sockets

Module Module1

    Sub Main()
        Try
            Dim port As Int32 = 2710
            Dim client As New TcpClient("localhost", port)

            'mit 0x00 Verbindung aufbauen 0x00 = &H0 
            Dim message As Byte() = New Byte() {&H0}
            ' t-Token als Byte array.
            Dim data As [Byte]() = System.Text.Encoding.UTF8.GetBytes("0t" + vbNullChar + "V9.0afi ")



            Dim stream As NetworkStream = client.GetStream()
            client.GetStream.Flush()

            
            ' Daten an Server senden
            stream.Write(message, 0, message.Length)
            stream.Write(data, 0, data.Length)

            Console.WriteLine("Sent: {0}", System.Text.Encoding.ASCII.GetString(data))

            ' Receive the TcpServer.response.
            ' Buffer to store the response bytes.
            data = New [Byte](256) {}

            ' String to store the response ASCII representation.
            Dim responseData As [String] = [String].Empty

            ' Read the first batch of the TcpServer response bytes.
            Dim bytes As Int32 = stream.Read(data, 0, data.Length)
            responseData = System.Text.Encoding.ASCII.GetString(data, 0, bytes)
            Console.WriteLine("Received: {0}", responseData)
            ' Close everything.

            Dim n As [Byte]() = System.Text.Encoding.UTF8.GetBytes("0n" + vbNullChar + "channel" + vbNullChar + "nick" + vbNullChar + "pw")
            stream.Write(n, 0, n.Length)

            Dim Hi As [Byte]() = System.Text.Encoding.UTF8.GetBytes("0e" + vbNullChar + "channel" + vbNullChar + "Hallo :)" + vbNullChar)
            stream.Write(Hi, 0, Hi.Length)

            Dim a As [Byte]() = System.Text.Encoding.UTF8.GetBytes("0d" + vbNullChar)
            stream.Write(a, 0, a.Length)


        Catch e As ArgumentNullException
            Console.WriteLine("ArgumentNullException: {0}", e)
        Catch e As SocketException
            Console.WriteLine("SocketException: {0}", e)
        End Try

        Console.WriteLine(ControlChars.Cr + " Press Enter to continue...")
        Console.Read()

    End Sub 'Connect

End Module

Dieser Beitrag wurde bereits 2 mal editiert, zuletzt von »uncopyable« (07.09.2011, 21:10)


18

08.09.2011, 03:51

http://msdn.microsoft.com/en-us/library/…t(v=vs.71).aspx :whistling:

Edit: Diebi, du bist doch unser VB-Spezialist. :b In VB.NET benutzt man für Strings nicht den + Operator, sondern &.

Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von »Brainy« (08.09.2011, 04:06)