Hallo!
Mit dem PB-Befehl "CreateNetworkServer" installiert man einen Listener. Man hat aber keine Möglichkeit dabei das gewünschte Network-Interface auszusuchen. Mit "netstat -n -a" sieht man, dass auf 0.0.0.0 gelistened wird. Ich würd das ganze aber gerne auf 127.0.0.1 beschränken, was eigentlich ja auch gehen sollte.
Frage: Wie mach ich das am besten?
LG Didel.
CreateNetworkServer auf spezielles Interface beschränken?
- Didelphodon
- Beiträge: 360
- Registriert: 18.12.2004 13:03
- Wohnort: Wien
- Kontaktdaten:
CreateNetworkServer auf spezielles Interface beschränken?
Das Leben ist ein sch*** Spiel, aber die Grafik ist irre!
Fighting for peace is like fuc*ing for virginity!
Fighting for peace is like fuc*ing for virginity!
Wirklich ziemlich schwach, dass es nicht als Option unter PB möglich ist. *AscheAufMeinHaupt*
Dazu gibts bei Socket-Programmierung das Kommando bind(). Hab anfangs versucht, nach CreateNetworkServer() das bind() aufzurufen, ging aber - verständlich - in die Hose. Unter Windows geht's aber dennoch auf diese Art, also OHNE CreateNetworkServer(), über reine Sockets:
Das Message-Handling sollte dann jedoch über SetWindowCallback() realisiert werden.
Dazu gibts bei Socket-Programmierung das Kommando bind(). Hab anfangs versucht, nach CreateNetworkServer() das bind() aufzurufen, ging aber - verständlich - in die Hose. Unter Windows geht's aber dennoch auf diese Art, also OHNE CreateNetworkServer(), über reine Sockets:
Code: Alles auswählen
#PORT = 2222
#WM_NETZWERK = #WM_USER + 100
OpenWindow(0,0,0,200,100,"Server auf 127.0.0.1",#PB_Window_SystemMenu|#PB_Window_ScreenCentered)
InitNetwork()
sock = SOCKET_(#AF_INET,#SOCK_STREAM,#IPPROTO_TCP)
addr.sockaddr_in
addr\sin_family = #AF_INET
addr\sin_port = htons_(#PORT)
addr\sin_addr = inet_addr_("127.0.0.1");
bind_(sock,@addr,SizeOf(addr))
listen_(sock,0)
WSAAsyncSelect_(sock,WindowID(0),#WM_NETZWERK,#FD_ACCEPT|#FD_READ|#FD_CLOSE)
Repeat
Event = WaitWindowEvent()
Select Event
Case #PB_Event_CloseWindow
End
Case #WM_NETZWERK
MessageRequester("Server","Auf dem Port tut sich was!")
EndSelect
ForEver
- Didelphodon
- Beiträge: 360
- Registriert: 18.12.2004 13:03
- Wohnort: Wien
- Kontaktdaten:
Hallo!
Ich verstehe das nicht so ganz... Moechtest du, dass nur Verbindungen von 127.0.0.1 angenommen werden?
Wenn ja, dann nimm doch den neuen GetIP() Befehl von PB 4 und pruefe damit die Adresse. Wie gesagt, ich verstehe das Topic nicht so ganz...
Ich verstehe das nicht so ganz... Moechtest du, dass nur Verbindungen von 127.0.0.1 angenommen werden?
Wenn ja, dann nimm doch den neuen GetIP() Befehl von PB 4 und pruefe damit die Adresse. Wie gesagt, ich verstehe das Topic nicht so ganz...
PB 4.30
Code: Alles auswählen
Macro Happy
;-)
EndMacro
Happy End
- Didelphodon
- Beiträge: 360
- Registriert: 18.12.2004 13:03
- Wohnort: Wien
- Kontaktdaten:
Es geht darum, das Interface auszuwählen, auf dem auf Port xy gehorcht werden soll. Sinnvollerweise macht man das z.B. für Anwendungen, die aus Teilen bestehen, die wiederum miteinander über TCP/IP kommunizieren. Damit dies nicht über das physikalische Interface (Netzwerkkarte) passiert (das wäre nämlich voll unnötig und noch dazu ein höheres Angriffsrisiko), kann sinnvollerweise dieses Horchen auf (in diesem Fall) 127.0.0.1 eingeschränkt werden. Bei 0.0.0.0 wird auf jedem Interface, das dem PC bekannt ist gehorcht!!
LG Didel.
LG Didel.
Das Leben ist ein sch*** Spiel, aber die Grafik ist irre!
Fighting for peace is like fuc*ing for virginity!
Fighting for peace is like fuc*ing for virginity!