Sie sind nicht angemeldet.

1

Dienstag, 8. Dezember 2009, 23:16

TCP in ein Bot einbinden - PROBLEM

Aloa,

Habe vor auf diesem Wege eine Serial abfrage zu erstellen oder ein Support zwischen Server und Client/Bot. Dazu diese Scripts als Grundlage, die dann verarbeitet werden, wenn ich es kappiere was scheif läuft!
habe es nun geschafft unter dem Localhost eine Verbindung zu bekommen. Aber das bringt ja nicht viel, der Server bekommt kein Signal, wenn der Client auf einem anderen Computer läuft bzw. nicht unter 127.0.0.1 . Habe den Port freigeschaltet, und Firewire deaktiviert.

Server:

AutoIt-QuellCode

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
    TCPStartup()
    $MainSocket = TCPListen("b******1.no-ip.org","312",100)
    While 1
    $NewSocket = TCPAccept($MainSocket)

    If $NewSocket >= 0 Then
        Do
            $Recv = TCPRecv($NewSocket,2048)
        Until $Recv <> ""
      
        MsgBox(1,"","Empfangen : " & $Recv)

        
    EndIf

    WEnd


Client:

AutoIt-QuellCode

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
  #include <GuiConstants.au3>

    TCPStartUp()
    #Region ### START Koda GUI section ### Form=
    $GUI = GuiCreate("CLIENT",300,500)
    $Edit = GUICtrlCreateEdit("",0,0,300,200)
    $OK  = GUICtrlCreateButton("Senden",100,300,100,30)
    GUISetState(@SW_SHOW)
    #EndRegion ### END Koda GUI section ###
    While 1
    $msg = GUIGetMsg()

    Switch $msg 
     
        Case $OK
            $MainSocket = TCPConnect("b******1.no-ip.org","312")
            
            TCPSend($MainSocket,GUICtrlRead($Edit))
       
            MsgBox(0,"GESENDET","Die Nachricht wurde gesendet")
    EndSwitch
    WEnd


Ich arbeite mit No-IP, finde es irgendwie besser las mit richtiger IP, falls es daran liegt das es nicht geht würde ich auch mit IP abreiten können. Habe aber beides versucht. Geht nicht.

Wo liegt der Fehler ?? :huh:

Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von »HappyCode18« (9. Dezember 2009, 11:38)


Hilfe für Kinder in Uganda

2

Dienstag, 8. Dezember 2009, 23:34

1. Wenn es lokal funktioniert, liegt es oft am Port... sprich entweder wird der vom Server "nicht unterstützt" oder es gibt eine (oder gleich mehrere) Firewall, die den Port blockt^^ Kannst ja mal mit anderem versuchen.

2. Das mit dem No-IP... ka was das ist, aber wäre noch n1 wenn du mal klären könntest, ob sich das skript überhaupt wunschgemäss ausführen kann auf dem Server^^

cooli
Signatur

:thumbsup: Meine Ziele :thumbsup:

Eigener PC bauen [X]
Webmaster [X]
==================
Lernen zu Coden:
*Java [X]
*AutoIt [X]
**(gutes) Tutorial erstellen [ ]
*C++ [ ]
==================
BotCoder [ ]
Gymnasium fertig [ ]
Linux Guru [ ]
Traumfrau finden [ ]
Glücklich für den Rest meines Lebens leben [ ]

3

Mittwoch, 9. Dezember 2009, 00:29

probiere mal nen anderen port (über 8000)

edit:

hier ist der fehler ->

AutoIt-QuellCode

1
 TCPListen(TCPNameToIP("b******1.no-ip.org"),"312",100) ; bei connect natürlich auch
Signatur

Dieser Beitrag wurde bereits 2 mal editiert, zuletzt von »I3iLLiG« (9. Dezember 2009, 01:49)


4

Mittwoch, 9. Dezember 2009, 11:44

Wo musst das rein? Client oder Server ? :D

5

Mittwoch, 9. Dezember 2009, 12:46

AutoIt-QuellCode

1
2
TCPConnect ( IPAddr, port )
TCPListen ( IPAddr, port [, MaxPendingConnection] )

Quellcode

1
2
3
Parameters

IPAddr Internet Protocol dotted address(IpV4) as "192.162.1.1".
Signatur

6

Mittwoch, 9. Dezember 2009, 13:14

Warum sagen hier alle zu firewall firewire? :lol:

B2T:
Versuch ma den Server auf nem root laufen zu lassen, aus dem Grund das ein root eine statische IP hat.
Bei no-IP kann immer mal was schief laufen.

7

Mittwoch, 9. Dezember 2009, 13:32

Habe es nun so:

Server:

AutoIt-QuellCode

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
TCPStartup()
    $MainSocket = TCPListen(TCPNameToIP("45.111.150.520"),"6633",100)
    
    While 1
    $NewSocket = TCPAccept($MainSocket)

    If $NewSocket >= 0 Then
        Do
        $Recv = TCPRecv($NewSocket,2048)
        Until $Recv <> ""
      
        MsgBox(1,"","Empfangen : " & $Recv)

        
    EndIf

    WEnd


Client:

AutoIt-QuellCode

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
#include <GuiConstants.au3>

    TCPStartUp()
    #Region ### START Koda GUI section ### Form=
    $GUI = GuiCreate("CLIENT",300,500)
    $Edit = GUICtrlCreateEdit("",0,0,300,200)
    $OK  = GUICtrlCreateButton("Senden",100,300,100,30)
    GUISetState(@SW_SHOW)
    #EndRegion ### END Koda GUI section ###
    While 1
    $msg = GUIGetMsg()

    Switch $msg 
     
        Case $OK
            $MainSocket = TCPConnect("45.111.150.520","6633")
            
            TCPSend($MainSocket,GUICtrlRead($Edit))
       
            MsgBox(0,"GESENDET","Die Nachricht wurde gesendet")
    EndSwitch
    WEnd


Die IP Adresse habe ich verändert, aber im Original steht meine richtige IP .. schaut es euch bitte mal an ob alles richtig ist :S Was ist ein Root Server ? :D :dash:

8

Mittwoch, 9. Dezember 2009, 15:03

TCPListen(TCPNameToIP("45.111.150.520"),"6633",100)


so nochmal probieren.
Signatur

Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von »I3iLLiG« (9. Dezember 2009, 15:05)


9

Mittwoch, 9. Dezember 2009, 15:27

So hatte ich es anfangs geht auch nicht :grumble:

10

Mittwoch, 9. Dezember 2009, 20:01

Ein Root ist ein PC der meist in einem Rechnerturm steht.
Er hat eine IP die sich nie verändert und von überall zu erreichen ist( also wenn man no-ip etc. benutzt)
Und er ist eig... immer an..

Roots kann man z.b bei server4you.de mieten.

11

Mittwoch, 9. Dezember 2009, 20:01

Macht es ein unterschied ob der Server (Mein Pc) mit Lan oder WLan verbunden ist ? Ich kann mich erinnern das früher in einem ähnlichen Fall ich nur mit Lan ein Connection hatte.

12

Mittwoch, 9. Dezember 2009, 20:23

Nein macht es nicht. Du kannst bei beiden Fällen (z.B. über Firefox oder Internetexplorer) Packete an den Server senden und Empfangen....

13

Mittwoch, 9. Dezember 2009, 20:27

geanuer?

14

Mittwoch, 9. Dezember 2009, 20:40

Gibt nichts genaueres. Die Verbindung ist die selbe egal ob per Lan oder per WLan. Einzige Unterschied ist die Physikalische Datenübertragung... Gucke in denem Router am besten mal den passeden Port an und überprüfe ob du dort überhaupt verbindungen ins Netzwerk zulässt usw.

15

Mittwoch, 9. Dezember 2009, 21:26

versuchs ma über hamachi, das ist sowas wie nen Lan netzwerk, alle die in deinem Netzwerk sind( kann man in Hamachi erstellen)
können deinem Server packete senden, dann sollte es eig.. gehen ;)

16

Donnerstag, 10. Dezember 2009, 13:31

Bei dem Spiel, Wowrld of Warcraft wird der Port 3572 gebraucht, das heißt er ist offen. Wenn ich also in meinem Script mit diesem Port(natürlich nicht parallel wenn das Spiel offen ist!) arbeite müsste es doch funktionieren, wenn auch WoW funktioniert ohne Verbindungsproblem, oder liege ich da falsch ?

Das ist immer sooo mysteriös mit den Port und so -.-

HILFE ! :hail:

Dieser Beitrag wurde bereits 2 mal editiert, zuletzt von »HappyCode18« (10. Dezember 2009, 13:52)


17

Donnerstag, 10. Dezember 2009, 14:44

Nehm einen Port der noch nicht benutzt wird, und dann gebe ihn in deiner Firewall frei oder mache sie aus.

18

Donnerstag, 10. Dezember 2009, 14:47

Ist bereits aus

19

Donnerstag, 10. Dezember 2009, 16:19

1. wenn du einen server machen willst, musst du die ports die du benutzten willst öffnen
2. firewall musst aus sein
3. der port darf nicht bereits benutzt werden
4. probier es einfach mit dem autoit beispielcode und form ihn nach belieben um...
Signatur
Ich bin vom 6.9. an eine Woche wech :)
Ich kann mir richtige Ladebalken leisten und muss zwischen den GuiCtrlSetData's keine Sleeps einbaun 8|

20

Donnerstag, 10. Dezember 2009, 17:20

Ich habe bei meinem Router den Port 6644 freigeschaltet, das sah so aus " 192.168.2.3 : 6644 TCP "
Habe dann beim Server diese IP (192.168.2.3 ) rein geschrieben, damit er dann dort nach Packeten schaut. Beim Client habe ich meine richtige IP vom Provider eingeben, damit er sich dann connecten kann mit meinem Computer(Server). Bei beiden habe ich den gleichen Port eingetragen.
Firewall ist aus

und es funktioniert immer noch nicht .. *kotz* Ich habe doch alles richitg gemacht? Liegt es vlt. am Kollegen dessen AntiVir oder sonstiges die Verbindung sperrt?