Register for your free account! | Forgot your password?

Go Back   elitepvpers > Coders Den > AutoIt
You last visited: Today at 16:19

  • Please register to post and access all features, it's quick, easy and FREE!

Advertisement



frage zu tcp kommunikation

Discussion on frage zu tcp kommunikation within the AutoIt forum part of the Coders Den category.

Reply
 
Old   #1
 
Mr.Netwolf's Avatar
 
elite*gold: 0
Join Date: Sep 2008
Posts: 80
Received Thanks: 6
frage zu tcp kommunikation

hi =)
ich wollte fragen ob sich jemand damit auskennt und weiß ob diese struktur funktionieren würde :
links der Empfänger rechts der Sender.
also die hauptfrage ist eigentlich ob ich den socket wieder schließen muss nach jedem Empfang und dann wieder neu öffnen oder ob ich mehrfach daten verschicken kann und den socket erst schließe wenn keine daten mehr verschickt werden sollen.

tcpstartup()
tcplisten()

tcpaccept() <-------------------------tcpconnect()

loop
tcprecv()<------------------------------tcpsend()
until "whatever " or tcpaccept = -1
tcpclosesocket(tcpaccept())
tcpclosesocket(tcplisten())

tcpshutdown()
Mr.Netwolf is offline  
Old 05/16/2014, 20:23   #2
 
alpines's Avatar
 
elite*gold: 60
Join Date: Aug 2009
Posts: 2,256
Received Thanks: 815
Nein, du musst den Socket nicht jedes mal schließen außer es ist so im Protokoll verankert.
Bei einem HTTP Packets wäre
Code:
Connection: close
im Header die Anordnung den Socket zu schließen, wenn aber
Code:
Connection: keep-alive
vorhanden ist, dann wird der Socket nicht geschlossen.

Btw, dein Sender braucht ebenfalls TCPStartup() sowie TCPShutdown().
alpines is offline  
Thanks
1 User
Old 05/17/2014, 13:50   #3
 
Mr.Netwolf's Avatar
 
elite*gold: 0
Join Date: Sep 2008
Posts: 80
Received Thanks: 6
Empfänger
Code:
; TCP
TCPStartup()
$ip = "192.168.178.35"
$port = 3333
$listen = TCPListen($ip, $port)
$accept = TCPAccept($listen)
$recv = TCPRecv($accept, 1024)

while 1

				If $listen <> -1 Then
					If $accept <> -1 Then
						;ToolTip($accept & " has conncected")
						$recv = TCPRecv($accept, 1024)
						;If @error Then;connection lost
						;	ToolTip("lost connection between " & $accept)
						;EndIf
						If $recv <> "" Then;if received something
							ToolTip("received this: '" & int($recv) & "'")
							$FHP = int($recv) ; umwandlung hex zu int

						EndIf
					Else
						$accept = TCPAccept($listen)
					EndIf

				Else
					$listen = TCPListen($ip, $port)

				EndIf
WEnd
Sender ( zu $HP -> isn Float - Wert der aus nem client ausgelesen wird und an den empfänger weiter gegeben werden soll )
Code:
; TCP
TCPStartup()
$ip = "192.168.178.35"
$port = 3333
$connect = TCPConnect($ip, $port)
$tcptimer = timerinit()

while 1
					If $connect <> -1 Then
						if TimerDiff($tcptimer) > 1000 Then
						; Umwandlung von float zu int  über string
						$HP = String($HP)
						$HP = Int($HP)
						$send = TCPSend($connect,$HP)
						$tcptimer = timerinit()
						EndIf
					Else
						$connect = TCPConnect($ip, $port)
					EndIf
WEnd


das funktioniert soweit eigentlich ganz gut. Das Streamen läuft.
Problematisch wirds halt blos, wenn einer der Beiden kurzzeitig abschmiert.
für den Fall müssen die Sockets dann halt doch erneuert werden.

Nur irgendwie hab ich es noch nicht hinbekommen, dass der eine client mitbekommt, wenn der andere client nicht mehr läuft o_O

eine kleine Feinheit, die ich durch den tcptimer erstmal geregelt hab ist, dass wenn der Sender zu schnell schickt, es so ne art Stau gibt
und dann anstatt "ABC" "ABC" "ABC" eben "ABCABCABC" ankommt.
Mr.Netwolf is offline  
Old 05/17/2014, 14:40   #4
 
butter123's Avatar
 
elite*gold: 95
Join Date: May 2011
Posts: 982
Received Thanks: 189
für sowas wird häufig etwas vom server bspw "ping" gesendet und der client hat darauf in einer gewissen zeit mit "pong" zu reagieren. kommt keine antwort, weiß der server, dass etwas schief gelaufen ist.
und für das ababacbcbacbacb, mach nach jedem befehl ein ; oder ein anderes trennzeichen, was nicht anderweitig vorkommt. dann einmal stringsplit und fertig^^
butter123 is offline  
Reply


Similar Threads Similar Threads
[R]Interaktive Kommunikation
01/31/2014 - Metin2 PServer Guides & Strategies - 83 Replies
Hallo, nach langem mitlesen, habe ich mir gedacht ich release auch mal was. Es handelt sich um ein komplett neues System der Kommunikation mit den NPC's. Ihr lauft zu seinem NPC, sobald ihr in die nähe kommt fängt er an mit euch zu reden, also er redet wirklich, dass heißt ihr müsst euren Ton an haben. Ich release euch hier das gesamt Paket, Quest + Clientkram + Sounds. Ihr könnt das System gerne auch noch erweitern, ich habe die Quest so geschrieben, dass ihr in der Table leicht eure...
kommunikation main acc / bot acc
06/28/2012 - WoW Bots - 9 Replies
Hallo Leute, wie gehe ich die "kommunikation" unter meinen beiden accs am besten an? schicke ich einfach vom bot acc per post die gefarmten mats/gold an den main oder wäre das zu auffällig? wie setzt ihr das um? danke für eure hilfe
Kommunikation mit injizierter DLL
05/31/2010 - General Coding - 12 Replies
Hey, ich hab mal ne Frage und hoffe das das hier die richtige Section ist. Ich würde ganz gerne wissen, wie man, wenn man eine DLL in einen fremden Prozess injected hat, am besten mit dieser kommuniziert. Ich würde nämlich gerne einen kleinen Multi-Speedhack mit GetTickCount hook schreiben (die DLL ist schon fertig und läuft auch), nur weiß ich nicht wie ich mit der injizierten DLL dann kommunizieren soll um z.B. die Geschwindigkeit zu regulieren. Die Geschwindigkeit in eine Datei zu speichern...
[Frage] Addon kommunikation per z.b. TCP?
10/19/2009 - World of Warcraft - 2 Replies
Ist es möglich ein Addon mit einem Server kommunizieren zu lassen, bzw. Informationen an jenen weiterzuleiten? Wenn ja, wie würde das funktionieren? Welche Möglichkeiten gibt es dafür? Beispiel: DamageMeter des Raids wird nach dem Kampf automatisch auf der GildenHP aktualisiert.



All times are GMT +2. The time now is 16:19.


Powered by vBulletin®
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
SEO by vBSEO ©2011, Crawlability, Inc.
This site is protected by reCAPTCHA and the Google Privacy Policy and Terms of Service apply.

Support | Contact Us | FAQ | Advertising | Privacy Policy | Terms of Service | Abuse
Copyright ©2024 elitepvpers All Rights Reserved.