|
You last visited: Today at 12:49
Advertisement
TCP+UDP socket
Discussion on TCP+UDP socket within the C/C++ forum part of the Coders Den category.
05/02/2012, 10:30
|
#1
|
elite*gold: 0
Join Date: Oct 2008
Posts: 1,637
Received Thanks: 1,119
|
TCP+UDP socket
ich müsste ein serversocket für tcp UND udp haben, der client sendet ein server check packet (udp), aber das eigentliche protkoll basiert auf tcp!
jemand ne idee wie ich so ein socket konfigurieren müsste, bzw. welchen socket typ ich nehmen müsste?
|
|
|
05/02/2012, 14:57
|
#2
|
elite*gold: 5
Join Date: Sep 2006
Posts: 385
Received Thanks: 218
|
Das klingt ziemlich ungesund, wozu brauchst du denn sowas?
Aber ich denke du suchst nach IPPROTO_RAW. Habe ich selber nie getestet (deshalb kann ich dir hier auch nicht wirklich helfen), aber rein vom lesen her hast du damit direkten Zugriff bis zum IP-Header.
|
|
|
05/02/2012, 15:00
|
#3
|
elite*gold: 0
Join Date: Oct 2008
Posts: 1,637
Received Thanks: 1,119
|
Quote:
Originally Posted by Nightblizard
Das klingt ziemlich ungesund, wozu brauchst du denn sowas?
Aber ich denke du suchst nach IPPROTO_RAW. Habe ich selber nie getestet (deshalb kann ich dir hier auch nicht wirklich helfen), aber rein vom lesen her hast du damit direkten Zugriff bis zum IP-Header.
|
nunja, wenn ich einen voll funktionsfähigen emulator haben will muss da auch das query packet ankommen bzw. zurück gesendet werden
IPPROTO_RAW scheint aber interessant zu sein, ich werds mir mal anschauen
|
|
|
05/04/2012, 15:07
|
#4
|
elite*gold: 0
Join Date: Dec 2007
Posts: 322
Received Thanks: 98
|
Kannst du nicht einfach zwei Sockets verwenden? Nimm ein TCP-Socket und ein UDP-Socket (beispielsweise auf Port 13337) und arbeite dann dein Protokoll ab.
|
|
|
05/04/2012, 15:58
|
#5
|
elite*gold: 1000
Join Date: Apr 2012
Posts: 1,003
Received Thanks: 208
|
Seit wann kann man Ports doppelt belegen? Wär mir neu
|
|
|
05/04/2012, 16:15
|
#6
|
elite*gold: 1
Join Date: Feb 2009
Posts: 6,378
Received Thanks: 7,996
|
Quote:
Originally Posted by qkuh
Seit wann kann man Ports doppelt belegen? Wär mir neu 
|
Wenn man mit Raw-Socks arbeitet, also anstatt wie üblich auf Layer 4 (Transport) auf Layer 3 (Network) des OSI-Modells, ist es durchaus möglich Ports "doppelt zu belegen" (mit unterschiedlichen Transport-Protokollen), weil die Routinen, die unterschiedliche Protokolle unterschiedlich behandeln und dem bei der Verwendung gewöhnlicher Sockets im Wege stehen, ja von dir als Entwickler implementiert werden. Mir stellt sich allerdings die Frage weshalb jemand das wollen würde - warum nicht einfach zwei Ports verwenden, wie es jeder normale Mensch auch tut? (Post #3 überlesen)
Im Übrigen ist anzumerken, dass Raw-Socks AFAIK administrative Rechte erfordern.
|
|
|
05/04/2012, 18:02
|
#7
|
elite*gold: 0
Join Date: Oct 2008
Posts: 1,637
Received Thanks: 1,119
|
Quote:
Originally Posted by Ende!
Wenn man mit Raw-Socks arbeitet, also anstatt wie üblich auf Layer 4 (Transport) auf Layer 3 (Network) des OSI-Modells, ist es durchaus möglich Ports "doppelt zu belegen" (mit unterschiedlichen Transport-Protokollen), weil die Routinen, die unterschiedliche Protokolle unterschiedlich behandeln und dem bei der Verwendung gewöhnlicher Sockets im Wege stehen, ja von dir als Entwickler implementiert werden. Mir stellt sich allerdings die Frage weshalb jemand das wollen würde - warum nicht einfach zwei Ports verwenden, wie es jeder normale Mensch auch tut? (Post #3 überlesen)
Im Übrigen ist anzumerken, dass Raw-Socks AFAIK administrative Rechte erfordern.
|
durch raw sockets wirds einfach nur noch etwas komplizierter als ich vor hatte
hätte zu anfang eher daran gedacht, einfach 2 sockets zu erstellen (1 tcp, 1 udp), mit recvfrom (nonblocking) versuchen daten zu empfangen.
anschließend der ganze tcp kram mit select,recv,accept usw.
schreib ich mir wohl besser direkt ne socket lib. ich denke, dass ich das noch öfter gebrauchen könnte
btw. admin rechte benötige ich sowieso
|
|
|
All times are GMT +1. The time now is 12:57.
|
|