wenn de mir sagst wie
![]()
Beiträge von Kev
-
-
fast

jetz macht ers so:
Spoiler anzeigen
[Blockierte Grafik: http://www9.picfront.org/token/7tZI/2010/03/17/1787490.png]

bzw kann ich net iwie sagen
. 1 IP:
. 2 IP:
. 3 IP:und da die die daten alle 30 minuten kommen soller den alten eintrag in der txt mit dem neuen löschen^^
aber nur mit der dazugehörenden ip.also wenn das ding auf 20 rechner kommt, und jeder ne andere ip hat. soller den alten eintrag mit der ip in der txt mit dem neuen austauschen :o
geht das? if yes then wie? -
Spoiler anzeigen
[autoit]
[/autoit] [autoit][/autoit] [autoit]
#include <GUIConstantsEx.au3>Opt('MustDeclareVars', 1)
[/autoit] [autoit][/autoit] [autoit];==============================================
[/autoit] [autoit][/autoit] [autoit]
;==============================================
; SERVER!! Startet mich zuerst !!!!!!!!!!!!!!!
;==============================================
;==============================================
dircreate("C:\Message\")global $open
[/autoit] [autoit][/autoit] [autoit]Example()
[/autoit] [autoit][/autoit] [autoit]Func Example()
[/autoit] [autoit][/autoit] [autoit]
; Richte einige wiederverwendbare Informationen ein.
; Richte deine öffentliche IP Adresse (@IPAddress1) hier ein.
; Local $szServerPC = @ComputerName
; Local $szIPADDRESS = TCPNameToIP($szServerPC)
Local $szIPADDRESS = @IPAddress1
Local $nPORT = 33891
Local $MainSocket, $GOOEY, $edit, $ConnectedSocket, $szIP_Accepted
Local $msg, $recv; Startet den TCP Service
[/autoit] [autoit][/autoit] [autoit]
;==============================================
TCPStartup(); Erstellt einen lauschenden Port.
[/autoit] [autoit][/autoit] [autoit]
; Benutzt deine IP Adresse und den Port 33891. (Oben angegeben)
;==============================================
$MainSocket = TCPListen($szIPADDRESS, $nPORT); Wenn die Socketerstellung fehl schlägt, dann wird das Programm beendet.
[/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]
If $MainSocket = -1 Then Exit; Erstellt eine GUI für Messages.
[/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]
;==============================================
$GOOEY = GUICreate("Message - Server IP: " & $szIPADDRESS, 550, 200)
$edit = GUICtrlCreateEdit("", 10, 10, 300, 180)
GUISetState(); Initialisiert eine Variable um eine Verbindung anzugeben
[/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]
;==============================================
$ConnectedSocket = -1; Wartet auf und akzeptiert eine Verbindung
[/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]
;==============================================
Do
$ConnectedSocket = TCPAccept($MainSocket)
Until $ConnectedSocket <> -1; Bekommt die IP des verbundenen Clients
[/autoit] [autoit][/autoit] [autoit]
$szIP_Accepted = SocketToIP($ConnectedSocket); GUI Message Schleife
[/autoit] [autoit][/autoit] [autoit]
;==============================================
While 1
$msg = GUIGetMsg(); GUI beendet
[/autoit] [autoit][/autoit] [autoit]
;--------------------
If $msg = $GUI_EVENT_CLOSE Then ExitLoop; Versucht Daten zu empfangen, bis zu 2048 bytes
[/autoit] [autoit][/autoit] [autoit]
;----------------------------------------------------------------
$recv = TCPRecv($ConnectedSocket, 30000); Aktualisiert das Input-Control mit dem, was wir empfangen haben.
[/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]
;----------------------------------------------------------------
If $recv <> "" Then GUICtrlSetData($edit, _
$szIP_Accepted & " > " & $recv & @CRLF & GUICtrlRead($edit))
Filewrite("C:/Message/recieved.txt",$recv)
$open = FileOpen ("C:/Message/recieved.txt", 1)
Filewrite($open, @CrLf & $recv); wenn du in $recv noch keinen zeilenumbruch hast
FileClose($open)
WEndIf $ConnectedSocket <> -1 Then TCPCloseSocket($ConnectedSocket)
[/autoit] [autoit][/autoit] [autoit]TCPShutdown()
[/autoit] [autoit][/autoit] [autoit]
EndFunc ;==>Example; Funktion um die IP Adresse eines verbundenen Sockets wiederzugeben.
[/autoit] [autoit][/autoit] [autoit]
;----------------------------------------------------------------------
Func SocketToIP($SHOCKET)
Local $sockaddr, $aRet$sockaddr = DllStructCreate("short;ushort;uint;char[8]")
[/autoit] [autoit][/autoit] [autoit]$aRet = DllCall("Ws2_32.dll", "int", "getpeername", "int", $SHOCKET, _
[/autoit] [autoit][/autoit] [autoit]
"ptr", DllStructGetPtr($sockaddr), "int*", DllStructGetSize($sockaddr))
If Not @error And $aRet[0] = 0 Then
$aRet = DllCall("Ws2_32.dll", "str", "inet_ntoa", "int", DllStructGetData($sockaddr, 3))
If Not @error Then $aRet = $aRet[0]
Else
$aRet = 0
EndIf$sockaddr = 0
[/autoit] [autoit][/autoit] [autoit]Return $aRet
[/autoit] [autoit][/autoit] [autoit][/autoit]
EndFunc ;==>SocketToIPso hab ichs jetzt.
er erstellt den text macht 1000 mal enter, schreibst wieda rein und wieda 1000 mal enter
liegts an der while schleife?! bzw if yes, wiebau ich das dem entsprechend um? -
kay
jetzt hab ich das Problem das der ne leere textdatei hat. die wird zwar größer und größer
aber es steht nix drin 
//edit
doch^^ er machts
ermacht 1000 mal @crlf
und dann schreibter das rein
dann wieda 1000 ma @crlf un weiter^^ -
kay und wohin damit?^^
-
an was wo wie?
schnitzel drück dich bitte besser aus
wo was ranhängen und was bringt des 
-
kaaaay habs, thx schnitzel.
next thing

das was der server recv. solla in ne text datei spiechern.
macht er auch, bloß soller nach jedem ding was er kriegt,in ne neue zeile gehen, sprich enter drücken und da dann weiter machen.das wenn ich den clienten hier jetz.
auf 100 rechnern hab.den ersten reinschreibt mit: ahh auch gute iddee. genau

PC1: IP/Computername/Time
PC2:IP/Computername/Time
unsoweiter...immer in ner neuen zeile.
server quellcode ist:;
Spoiler anzeigen
[autoit]
[/autoit] [autoit][/autoit] [autoit]
#include <GUIConstantsEx.au3>Opt('MustDeclareVars', 1)
[/autoit] [autoit][/autoit] [autoit];==============================================
[/autoit] [autoit][/autoit] [autoit]
;==============================================
; SERVER!! Startet mich zuerst !!!!!!!!!!!!!!!
;==============================================
;==============================================
dircreate("C:\Message\")
Example()Func Example()
[/autoit] [autoit][/autoit] [autoit]
; Richte einige wiederverwendbare Informationen ein.
; Richte deine öffentliche IP Adresse (@IPAddress1) hier ein.
; Local $szServerPC = @ComputerName
; Local $szIPADDRESS = TCPNameToIP($szServerPC)
Local $szIPADDRESS = @IPAddress1
Local $nPORT = 33891
Local $MainSocket, $GOOEY, $edit, $ConnectedSocket, $szIP_Accepted
Local $msg, $recv; Startet den TCP Service
[/autoit] [autoit][/autoit] [autoit]
;==============================================
TCPStartup(); Erstellt einen lauschenden Port.
[/autoit] [autoit][/autoit] [autoit]
; Benutzt deine IP Adresse und den Port 33891. (Oben angegeben)
;==============================================
$MainSocket = TCPListen($szIPADDRESS, $nPORT); Wenn die Socketerstellung fehl schlägt, dann wird das Programm beendet.
[/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]
If $MainSocket = -1 Then Exit; Erstellt eine GUI für Messages.
[/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]
;==============================================
$GOOEY = GUICreate("Message - Server IP: " & $szIPADDRESS, 550, 200)
$edit = GUICtrlCreateEdit("", 10, 10, 300, 180)
GUISetState(); Initialisiert eine Variable um eine Verbindung anzugeben
[/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]
;==============================================
$ConnectedSocket = -1; Wartet auf und akzeptiert eine Verbindung
[/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]
;==============================================
Do
$ConnectedSocket = TCPAccept($MainSocket)
Until $ConnectedSocket <> -1; Bekommt die IP des verbundenen Clients
[/autoit] [autoit][/autoit] [autoit]
$szIP_Accepted = SocketToIP($ConnectedSocket); GUI Message Schleife
[/autoit] [autoit][/autoit] [autoit]
;==============================================
While 1
$msg = GUIGetMsg(); GUI beendet
[/autoit] [autoit][/autoit] [autoit]
;--------------------
If $msg = $GUI_EVENT_CLOSE Then ExitLoop; Versucht Daten zu empfangen, bis zu 2048 bytes
[/autoit] [autoit][/autoit] [autoit]
;----------------------------------------------------------------
$recv = TCPRecv($ConnectedSocket, 30000); Aktualisiert das Input-Control mit dem, was wir empfangen haben.
[/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]
;----------------------------------------------------------------
If $recv <> "" Then GUICtrlSetData($edit, _
$szIP_Accepted & " > " & $recv & @CRLF & GUICtrlRead($edit))
Filewrite("C:/Message/recieved.txt",$recv)
WEndIf $ConnectedSocket <> -1 Then TCPCloseSocket($ConnectedSocket)
[/autoit] [autoit][/autoit] [autoit]TCPShutdown()
[/autoit] [autoit][/autoit] [autoit]
EndFunc ;==>Example; Funktion um die IP Adresse eines verbundenen Sockets wiederzugeben.
[/autoit] [autoit][/autoit] [autoit]
;----------------------------------------------------------------------
Func SocketToIP($SHOCKET)
Local $sockaddr, $aRet$sockaddr = DllStructCreate("short;ushort;uint;char[8]")
[/autoit] [autoit][/autoit] [autoit]$aRet = DllCall("Ws2_32.dll", "int", "getpeername", "int", $SHOCKET, _
[/autoit] [autoit][/autoit] [autoit]
"ptr", DllStructGetPtr($sockaddr), "int*", DllStructGetSize($sockaddr))
If Not @error And $aRet[0] = 0 Then
$aRet = DllCall("Ws2_32.dll", "str", "inet_ntoa", "int", DllStructGetData($sockaddr, 3))
If Not @error Then $aRet = $aRet[0]
Else
$aRet = 0
EndIf$sockaddr = 0
[/autoit] [autoit][/autoit] [autoit]Return $aRet
[/autoit] [autoit][/autoit] [autoit][/autoit]
EndFunc ;==>SocketToIPwichtige wäre hierbei denne:
[autoit]If $recv <> "" Then GUICtrlSetData($edit, _
[/autoit]
$szIP_Accepted & " > " & $recv & @CRLF & GUICtrlRead($edit))
Filewrite("C:/Message/recieved.txt",$recv) -
das is mir schonklar das ich das tun muss, aber wie
das ist die große frage -
funktioniert danke

ich saß 3h und hab versucht das ding rauszukriegen, da schreibt ma hier einma den error code rein und schon sindse dabei
kurz was anders:
[autoit]$szData = "IP Adresse:" & "" & @IPAddress1 & "" & "Computername: " & "" & @ComputerName & "" & "Zeit des Clienten:" & "" & @HOUR & ":" & @MIN & ":" & @SEC
[/autoit][autoit][/autoit][autoit][/autoit][autoit][/autoit]der macht dazwischen keine leerzeichen^^ der macht alles in eine reihe.

solla aber net
-
Hab mir jetzt mal ne Messagebox ausgeben lassen mit @Error.
und tatsächlich ich krieg nen fehler: "10061"mehr net..
Er sendet die IP/Computername/Timeeinmal.
sobald die zeit wiederum ist, sprich 5 sec , und er senden will, krieg ich den error code.
[autoit]#include <timers.au3>
[/autoit][autoit][/autoit][autoit]AutoItSetOption("OnExitFunc", "_quit")
[/autoit][autoit][/autoit][autoit]TCPStartup(); wird nur einmal aufgerufen
[/autoit][autoit][/autoit][autoit]Global $szIPADDRESS = "192.168.245.128"
[/autoit][autoit][/autoit][autoit]
Global $nPORT = 33891AdlibRegister('_client', 5000); rufe die func _client alle 5 sec auf
[/autoit][autoit][/autoit][autoit]While 1
[/autoit][autoit][/autoit][autoit]
Sleep(100)
WEndFunc _client ()
[/autoit][autoit][/autoit][autoit]
Local $ConnectedSocket
$ConnectedSocket = TCPConnect($szIPADDRESS, $nPORT)
If @error Then
msgbox(0,"",@error)
Else
$szData = "IP Adresse:" & "" & @IPAddress1 & "" & "Computername: " & "" & @ComputerName & "" & "Zeit des Clienten:" & "" & @HOUR & ":" & @MIN & ":" & @SEC
TCPSend($ConnectedSocket, $szData)
EndIf
EndFunc ;==>_clientFunc _quit()
[/autoit][autoit][/autoit][autoit][/autoit]
TCPShutdown()
EndFunc ;==>_quit -
scheiße ich bin zu spät

Alles Gute nachträglich !

-
bringt mich aber auch nicht weiter
es geht net 
-
hmm same thing.
[autoit]
bei mir kommt nichts an:
bzw. halt nur einmal. nach 5 sec.
server ist :
[/autoit][autoit][/autoit][autoit]
#include <GUIConstantsEx.au3>Opt('MustDeclareVars', 1)
[/autoit][autoit][/autoit][autoit];==============================================
[/autoit][autoit][/autoit][autoit]
;==============================================
; SERVER!! Startet mich zuerst !!!!!!!!!!!!!!!
;==============================================
;==============================================
dircreate("C:\Message\")
Example()Func Example()
[/autoit][autoit][/autoit][autoit]
; Richte einige wiederverwendbare Informationen ein.
; Richte deine öffentliche IP Adresse (@IPAddress1) hier ein.
; Local $szServerPC = @ComputerName
; Local $szIPADDRESS = TCPNameToIP($szServerPC)
Local $szIPADDRESS = @IPAddress1
Local $nPORT = 33891
Local $MainSocket, $GOOEY, $edit, $ConnectedSocket, $szIP_Accepted
Local $msg, $recv; Startet den TCP Service
[/autoit][autoit][/autoit][autoit]
;==============================================
TCPStartup(); Erstellt einen lauschenden Port.
[/autoit][autoit][/autoit][autoit]
; Benutzt deine IP Adresse und den Port 33891. (Oben angegeben)
;==============================================
$MainSocket = TCPListen($szIPADDRESS, $nPORT); Wenn die Socketerstellung fehl schlägt, dann wird das Programm beendet.
[/autoit][autoit][/autoit][autoit][/autoit][autoit]
If $MainSocket = -1 Then Exit; Erstellt eine GUI für Messages.
[/autoit][autoit][/autoit][autoit][/autoit][autoit]
;==============================================
$GOOEY = GUICreate("Message - Server IP: " & $szIPADDRESS, 450, 200)
$edit = GUICtrlCreateEdit("", 10, 10, 300, 180)
GUISetState(); Initialisiert eine Variable um eine Verbindung anzugeben
[/autoit][autoit][/autoit][autoit][/autoit][autoit]
;==============================================
$ConnectedSocket = -1; Wartet auf und akzeptiert eine Verbindung
[/autoit][autoit][/autoit][autoit][/autoit][autoit]
;==============================================
Do
$ConnectedSocket = TCPAccept($MainSocket)
Until $ConnectedSocket <> -1; Bekommt die IP des verbundenen Clients
[/autoit][autoit][/autoit][autoit]
$szIP_Accepted = SocketToIP($ConnectedSocket); GUI Message Schleife
[/autoit][autoit][/autoit][autoit]
;==============================================
While 1
$msg = GUIGetMsg(); GUI beendet
[/autoit][autoit][/autoit][autoit]
;--------------------
If $msg = $GUI_EVENT_CLOSE Then ExitLoop; Versucht Daten zu empfangen, bis zu 2048 bytes
[/autoit][autoit][/autoit][autoit]
;----------------------------------------------------------------
$recv = TCPRecv($ConnectedSocket, 2048); Aktualisiert das Input-Control mit dem, was wir empfangen haben.
[/autoit][autoit][/autoit][autoit][/autoit][autoit]
;----------------------------------------------------------------
If $recv <> "" Then GUICtrlSetData($edit, _
$szIP_Accepted & " > " & $recv & @CRLF & GUICtrlRead($edit))
Filewrite("C:/Message/recieved.txt",$recv)
WEndIf $ConnectedSocket <> -1 Then TCPCloseSocket($ConnectedSocket)
[/autoit][autoit][/autoit][autoit]TCPShutdown()
[/autoit][autoit][/autoit][autoit]
EndFunc ;==>Example; Funktion um die IP Adresse eines verbundenen Sockets wiederzugeben.
[/autoit][autoit][/autoit][autoit]
;----------------------------------------------------------------------
Func SocketToIP($SHOCKET)
Local $sockaddr, $aRet$sockaddr = DllStructCreate("short;ushort;uint;char[8]")
[/autoit][autoit][/autoit][autoit]$aRet = DllCall("Ws2_32.dll", "int", "getpeername", "int", $SHOCKET, _
[/autoit][autoit][/autoit][autoit]
"ptr", DllStructGetPtr($sockaddr), "int*", DllStructGetSize($sockaddr))
If Not @error And $aRet[0] = 0 Then
$aRet = DllCall("Ws2_32.dll", "str", "inet_ntoa", "int", DllStructGetData($sockaddr, 3))
If Not @error Then $aRet = $aRet[0]
Else
$aRet = 0
EndIf$sockaddr = 0
[/autoit][autoit][/autoit][autoit]Return $aRet
[/autoit][autoit][/autoit][autoit][/autoit]
EndFunc ;==>SocketToIP -
das heißt am ende nen tcpshutdown() rein?!
so versteh ichs grad^^
dann machters aber trotzdem nur nach 5 sec, und net alle 5 sec.
-
kay, ich baus gleich ein.
habs jetz so :
[autoit]
[/autoit][autoit][/autoit][autoit]
Opt('MustDeclareVars', 1);==============================================
[/autoit][autoit][/autoit][autoit]
;==============================================
; CLIENT! Startet mich, nachdem der Server gestartet wurde!!!!!!!!!!!!!!!
;==============================================
;==============================================
global $start$start = Timerinit()
[/autoit][autoit][/autoit][autoit]
while 1
if TimerDiff($start) > 5000 Then
client()
$start = TimerInit()
EndIf
WEndclient()
[/autoit][autoit][/autoit][autoit]Func client()
[/autoit][autoit][/autoit][autoit]
; Richte einige wiederverwendbare Informationen ein.
;--------------------------
Local $ConnectedSocket, $szData
; Set $szIPADDRESS Wir ändern den PC-Namen in eine IP-Adresse.
; Local $szServerPC = @ComputerName
; Local $szIPADDRESS = TCPNameToIP($szServerPC)
Local $szIPADDRESS = "192.168.245.128"
Local $nPORT = 33891; Startet den TCP Service
[/autoit][autoit][/autoit][autoit]
;==============================================
TCPStartup(); Initialisiert eine Variable, um eine Verbindung anzugeben.
[/autoit][autoit][/autoit][autoit]
;==============================================
Dim $ConnectedSocket = -1; Versucht, zu einem Server mit der IP und dem PORT 33891 zu verbinden.
[/autoit][autoit][/autoit][autoit]
;=======================================================
$ConnectedSocket = TCPConnect($szIPADDRESS, $nPORT); Falls es einen Fehler gibt, wird er angezeigt
[/autoit][autoit][/autoit][autoit]
If @error Then
client()
Else$szData = "IP Adresse:" & "" & @IPAddress1 & "" & "Computername: " & "" & @ComputerName & "" & "Zeit des Clienten:" & "" & @Hour & ":" & @min &":" & @sec
[/autoit]
TCPSend($ConnectedSocket,$szData)
EndIf
EndFunc ;==>Examplejetz schickt der des nach 5 sec
er solls aber alle 5 secbloß wie?
-
thx geht

und wenn ich jtzt sagen will, sende das alle 30 min?
-
darauf bin ich dann auch gekomm, hat aber anscheinend eins gefehlt, naja jetz gehts

jetz schickter mir bloß die daten 100000 mal
kann man dem net sagen, sende 1 mal ip, 1 mal computername, 1 mal time und fertig 
/edit, juhu ich bin fortgeschritten xD
-
Hey,
hab mir mal das tcpsend und recv thema angeschaut und versuch da grad was zu basteln..
[autoit]
krieg aber immer nen error in expression..
[/autoit][autoit][/autoit][autoit]
Opt('MustDeclareVars', 1);==============================================
[/autoit][autoit][/autoit][autoit]
;==============================================
; CLIENT! Startet mich, nachdem der Server gestartet wurde!!!!!!!!!!!!!!!
;==============================================
;==============================================Example()
[/autoit][autoit][/autoit][autoit]Func Example()
[/autoit][autoit][/autoit][autoit]
; Richte einige wiederverwendbare Informationen ein.
;--------------------------
Local $ConnectedSocket, $szData
; Set $szIPADDRESS Wir ändern den PC-Namen in eine IP-Adresse.
; Local $szServerPC = @ComputerName
; Local $szIPADDRESS = TCPNameToIP($szServerPC)
Local $szIPADDRESS = "192.168.245.128"
Local $nPORT = 33891; Startet den TCP Service
[/autoit][autoit][/autoit][autoit]
;==============================================
TCPStartup(); Initialisiert eine Variable, um eine Verbindung anzugeben.
[/autoit][autoit][/autoit][autoit]
;==============================================
Dim $ConnectedSocket = -1; Versucht, zu einem Server mit der IP und dem PORT 33891 zu verbinden.
[/autoit][autoit][/autoit][autoit]
;=======================================================
$ConnectedSocket = TCPConnect($szIPADDRESS, $nPORT); Falls es einen Fehler gibt, wird er angezeigt
[/autoit][autoit][/autoit][autoit]
If @error Then
MsgBox(4112, "Fehler", "TCP-Connect schlug mit folgendem WSA-Fehler fehl: " & @error)
; Wenn es keinen Fehler gibt, dann erscheint wiederholt eine Inputbox zur Eingabe von Daten, die zum Server gesendet werden sollen.
Else
; Fragt fortwährend nach Daten, die zum Server gesendet werden sollen.
While 1
; InputBox für die zu versendenden Daten
$szData = "IP Adresse: " @IPAddress1 & "Computername: "@ComputerName "Zeit des Clienten: "& @Hour & ":" & @min ":" & @sec; Wenn die Inputbox geschlossen wird oder leer bleibt, wird die Schleife beendet.
[/autoit][autoit][/autoit][autoit]
If @error Or $szData = "" Then ExitLoop; Wir sollten Daten in $szData haben... Lasst uns versuchen, sie durch unseren verbundenen Socket zu versenden.
[/autoit][autoit][/autoit][autoit]
TCPSend($ConnectedSocket,$szData); Wenn das Senden mit @error fehlgeschlagen ist, dann ist der Socket getrennt.
[/autoit]
;----------------------------------------------------------------
If @error Then ExitLoop
WEnd
EndIf
EndFunc ;==>Exampleis das standart ding bis auf n paar veränderungen
[autoit]
$szData = "IP Adresse: " @IPAddress1 & "Computername: "@ComputerName "Zeit des Clienten: "& @Hour & ":" & @min ":" & @sec
[/autoit]error kommt hier.
gruß
Kev
-
sprich ich brauch ein serverprogramm und den sogenannten adminclienten der die nachricht eingibt und senden klickt,
was soll das server ding denn so können vom aufbau her?
wie soll ich da anfangen :xnur so grob, geht au in wörtern^^
-
hey

ist es möglich über autoIt ohne "net send (winxp und drunter) oder msg (vista/win7)" eine message zu einer bestimmten ip innerhalb einer domain nachrichten zu versenden.

gruß
Kev