#include <GUIConstantsEx.au3>

;~ Server Ip
$Ip_Server = @IPAddress1
$Port = 3333

TCPStartUp ()
$Server = TCPListen($Ip_Server,$Port, 100)   ;~ für 100 Clients

While 1
	$Client_Get = TCPAccept($Server)
	If $Client_Get >= 0 Then
		Do
			$Message = TCPRecv($Client_Get,2048)
		Until $Message <> ""
		$Ip_Client = SocketToIP($Server)
		$Client_Send = TCPConnect ($Ip_Client,$Port)
		TCPSend ($Client_Send, "BackSend")
	EndIf
WEnd

Func SocketToIP($SHOCKET)
    Local $sockaddr, $aRet

    $sockaddr = DllStructCreate("short;ushort;uint;char[8]")

    $aRet = DllCall("Ws2_32.dll", "int", "getpeername", "int", $SHOCKET, _
            "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

    Return $aRet
EndFunc   ;==>SocketToIP
