der code ist zu langsam...

  • VB.NET

Es gibt 8 Antworten in diesem Thema. Der letzte Beitrag () ist von suncat.

    der code ist zu langsam...

    hallo,
    Der Server und der Client ist auf meinem Laptop.
    wenn ich den Clinet Code auf meinem Laptop ausführe, dann reagiert der Server softort(weniger als eine Sek..

    Wenn ich den Client Code in meinem Smart Device für PocketPC(der Code bleibt unverändert, auser die IP).

    DANN WARTE ICH GANZ GENAU 5 SEKUNDEN bis die Nachtricht beim Server ankommt.

    Jetzt kannn man sagen, liegt am Wlan ?!

    Komisch ist dann, wenn ich bei meinem PocketPC den IE aufmache und als IP 192.168.2.111 eingeben,dass dann der Server SOFORT reagiert?

    Ich spile mit dem Gadanke einen ASM Code oder c++ code einzufügen, oder den folgenden Code zu modifizieren?!


    Code der zum Server eine Nachricht schickt.

    VB.NET-Quellcode

    1. Imports System.Net.Sockets
    2. Imports System.IO
    3. Public Class Form1
    4. 'Variablen:
    5. Dim stream As NetworkStream
    6. Dim streamw As StreamWriter
    7. Dim streamr As StreamReader
    8. Dim Client As New TcpClient
    9. ' Dim IP As String =
    10. ' Dim Port As Integer = 80
    11. ' Dim loginname As String = "abc" ' Diese Variable ist nicht Pflicht! Aber nützlich für ein Chatprogram...
    12. '_________________
    13. Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
    14. Client.Connect("127.0.0.1", 80) 'Client verbindet sich mit IP: 192.168.111.17 und Port 4000
    15. ' If Client.Connected Then
    16. stream = Client.GetStream ' Stream wird auf Client verwiesen
    17. streamw = New StreamWriter(stream) ' Stream zum Senden wird deklariert
    18. ' streamr = New StreamReader(stream) ' Stream zum Empfangen wird deklariert
    19. ' streamw.WriteLine("onl " & loginname)
    20. streamw.WriteLine("14#2#1!0!0!#2!3!0")
    21. streamw.Flush()
    22. ' Else
    23. ' MsgBox("Verbidnung konnte nicht mit " & IP & " aufgebaut werden!")
    24. ' End If
    25. End Sub ''vom knopf
    26. End Class
    ich habe 2 Knöpfe erstellt.

    1.Knopf connect
    2.der Rest

    Wenn ich knopf 1 drücke und nach 2 sec. den Knopf 2 drückt dann kommt der Absturtz.
    Wenn ich Knopf 1 drücke und genau 5 sec warte, dann reagiert der Knopf 2 sehr schnell auf den Server.
    ok ist setze nochmal an:

    Mein Server:

    Mein Knopf "listen":
    ES ist Cpp kein php :)

    PHP-Quellcode

    1. // TODO: Add your control notification handler code here
    2. UpdateData(TRUE);
    3. m_sListener.Create(m_port);
    4. if(m_sListener.Listen()==FALSE)
    5. {
    6. m_sListener.Close();
    7. return;
    8. }
    9. CString a,b,c;
    10. a = m_log;
    11. b = "Listening For Connections!!!";
    12. c = "\r\n";
    13. m_log= a +b+c;
    14. UpdateData(FALSE);
    15. m_listenbutton.EnableWindow(FALSE);
    16. m_stopbutton.EnableWindow(TRUE);



    Hier wird Acceptiert:
    Es ist kein PHP sonder CPP

    PHP-Quellcode

    1. void CServerDlg::OnAccept()
    2. {
    3. CString strIP;
    4. UINT port;
    5. m_log += "Fehlera";
    6. UpdateData(FALSE);
    7. if(m_sListener.Accept(m_sConnected))
    8. {
    9. //m_sConnected.GetSockName(strIP,port);
    10. CString a,b,c;
    11. b = "Client Connected,IP :";
    12. c = "\r\n";
    13. a = m_log;
    14. m_log = a +b +c;
    15. /// hier
    16. //m_sConnected.Send("Connected To Server",strlen("Connected To Server"));
    17. UpdateData(FALSE);
    18. }
    19. else
    20. {
    21. m_log += "Fehler";
    22. UpdateData(FALSE);
    23. }
    24. }


    Mein Client:

    Quellcode

    1. VB
    2. Imports System
    3. Imports System.Text
    4. Imports System.IO
    5. Imports System.Net
    6. Imports System.Net.Sockets
    7. Imports System.Runtime.InteropServices
    8. Public Class Form1
    9. 'Variablen:
    10. Dim stream As NetworkStream
    11. Dim streamw As StreamWriter
    12. Dim streamr As StreamReader
    13. Dim Client As New TcpClient
    14. Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
    15. log.Text = log.Text + "log gehts"
    16. Client.Connect("192.168.2.111", 80) 'Client verbindet sich
    17. log.Text = log.Text + "connnet ist fertig"
    18. stream = Client.GetStream ' Stream wird auf Client verwiesen
    19. streamw = New StreamWriter(stream) ' Stream zum Senden wird deklariert
    20. streamr = New StreamReader(stream)
    21. streamw.WriteLine("14#2#1!0!0!#2!3!0")
    22. log.Text = log.Text + "gesendet"
    23. streamw.Flush()
    24. log.Text = log.Text + "Flush ausgeführt"
    25. Client.Close()
    26. End Sub
    27. End Class


    Bei meinem Server(Laptop) drücke ich auf den Knopf "listen".
    Bei meiner Client(PocketPC) drücke ich auf "connect"

    Dann hängt er bei ...

    Quellcode

    1. Client.Connect("192.168.2.111", 80) 'Client verbindet sich

    und stürtzt ab nach ca. 5 sec ab.

    Wenn ich den VB kram bei meinem Desctop PC nutze, dann gehts ?!
    PocketPC, Laptop und Desktop PC sind alles per Wlan verbunden.

    Wenn ich mit dem IE vom PcoketPC auf den Server zugreife, dann reagiert er sofort.

    Ich weis nicht wo ich anfangen soll den Fehler zusuchen,bzw wie soll ich ihn einkesseln?
    ok ist setze nochmal an:

    Mein Server:

    Mein Knopf "listen":
    [cpp]
    // TODO: Add your control notification handler code here
    UpdateData(TRUE);
    m_sListener.Create(m_port);
    if(m_sListener.Listen()==FALSE)
    {

    m_sListener.Close();
    return;
    }
    CString a,b,c;
    a = m_log;

    b = "Listening For Connections!!!";
    c = "\r\n";
    m_log= a +b+c;
    UpdateData(FALSE);
    m_listenbutton.EnableWindow(FALSE);
    m_stopbutton.EnableWindow(TRUE);

    [/cpp]


    Hier wird Acceptiert:
    [cpp]
    void CServerDlg::OnAccept()
    {
    CString strIP;
    UINT port;
    m_log += "Fehlera";
    UpdateData(FALSE);


    if(m_sListener.Accept(m_sConnected))
    {
    //m_sConnected.GetSockName(strIP,port);

    CString a,b,c;
    b = "Client Connected,IP :";
    c = "\r\n";
    a = m_log;
    m_log = a +b +c;
    /// hier



    //m_sConnected.Send("Connected To Server",strlen("Connected To Server"));
    UpdateData(FALSE);
    }
    else
    {
    m_log += "Fehler";
    UpdateData(FALSE);
    }
    }
    [/cpp]

    Mein Client:

    Quellcode

    1. VB
    2. Imports System
    3. Imports System.Text
    4. Imports System.IO
    5. Imports System.Net
    6. Imports System.Net.Sockets
    7. Imports System.Runtime.InteropServices
    8. Public Class Form1
    9. 'Variablen:
    10. Dim stream As NetworkStream
    11. Dim streamw As StreamWriter
    12. Dim streamr As StreamReader
    13. Dim Client As New TcpClient
    14. Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
    15. log.Text = log.Text + "log gehts"
    16. Client.Connect("192.168.2.111", 80) 'Client verbindet sich
    17. log.Text = log.Text + "connnet ist fertig"
    18. stream = Client.GetStream ' Stream wird auf Client verwiesen
    19. streamw = New StreamWriter(stream) ' Stream zum Senden wird deklariert
    20. streamr = New StreamReader(stream)
    21. streamw.WriteLine("14#2#1!0!0!#2!3!0")
    22. log.Text = log.Text + "gesendet"
    23. streamw.Flush()
    24. log.Text = log.Text + "Flush ausgeführt"
    25. Client.Close()
    26. End Sub
    27. End Class


    Bei meinem Server(Laptop) drücke ich auf den Knopf "listen".
    Bei meiner Client(PocketPC) drücke ich auf "connect"

    Dann hängt er bei ...

    Quellcode

    1. Client.Connect("192.168.2.111", 80) 'Client verbindet sich

    und stürtzt ab nach ca. 5 sec ab.

    Wenn ich den VB kram bei meinem Desctop PC nutze, dann gehts ?!
    PocketPC, Laptop und Desktop PC sind alles per Wlan verbunden.

    Wenn ich mit dem IE vom PcoketPC auf den Server zugreife, dann reagiert er sofort.

    Ich weis nicht wo ich anfangen soll den Fehler zusuchen,bzw wie soll ich ihn einkesseln?


    Nachtrag:
    23.01.2010 um 13.41

    Wenn ich auf Details gehe kommt:

    HTML-Quellcode

    1. SocketException
    2. Es konnte keiner Verbindung hergestellt
    3. werden, da der Zeilcomputer die
    4. Verbindung verweigerte
    5. bei
    6. System.Net.Sockets.Socket.ConnectNoCheck(EndPonit remoteEP)
    7. bei
    8. System.Net.Sockets,Socket.Connect(EndPonit remoteEP)
    9. bei
    10. System.Net.Sockets.TcpClient.Connext(IPEndPoint remoteEP)
    11. bei
    12. System.Net.Sockets.TcpClient.Connext(String hostname,Int32 port)
    13. bei
    14. System.Net.Sockets.TcpClient..ctor(String hostname,Int32 port)
    15. bei
    16. vb2.Form1senden_click(Object sender,EventArgs e)
    17. ... und eine ganze Late mehr...


    Laut nach meinem Netzwerkmonitor kommt nichts,wirklich nichts am Server an, nicht einmal ein Sys.
    Serverprogramm gestartet? kommt ein Ping an? Sicher, dass der Port 80 für dein Serverprogramm zugelassen wird?
    Flush ist bei NetworkStreams unnötig...
    außerdem öffnest du mit dem Button1 die Verbindung, sendest etwas und schließt direkt wieder, ich denke es wäre besser die Verbindung vorübergehen aufrecht zu erhalten...
    Ich wollte auch mal ne total überflüssige Signatur:
    ---Leer---
    -Serverprogramm gestartet?

    Ja,100%



    -kommt ein Ping an?

    ja,100%



    -Sicher, dass der Port 80 für dein Serverprogramm zugelassen wird?

    ja,100%





    -Flush ist bei NetworkStreams unnötig...

    ok, das wuste ich nicht.





    -außerdem öffnest du mit dem Button1 die Verbindung, sendest etwas und

    schließt direkt wieder, ich denke es wäre besser die -Verbindung

    vorübergehen aufrecht zu erhalten...

    so dachte ich auch zuletzt,



    Private Sub senden_Click(ByVal s.........................lblablalb

    blalbalba.........

    Client.Connect("192.168.2.111", 80) ' danach kommt nichts mehr, dann stützt mein Prog ab.

    End Sub



    Wenn ich den Quellcode für pc kompiliere dann läuft mein Prog 1a.Aber nicht für PocketPC.Warum?