========= Antworten ========= Die relevanten Systemaufrufe: ---- SHELL (path=session05,hostname=theon) ---- truss 2>truss.out tcpserver 0 22048 date & echo $! >truss.pid sleep 1 kill -HUP $(cat truss.pid) && rm -f truss.pid kill $(ps | grep tcpserv | grep -v grep | awk '{ print $1 }') sed -n '/socket(PF_INET/,$p' truss.out && rm -f truss.out ----------------------------------------------- Wie hieran zu erkennen ist, wartet _tcpserver_ in accept. Der erste Parameter ist ein Dateideskriptor, der zuvor mit einem _socket_-Systemaufruf („so_socket“ in der Ausgabe von _truss_) erzeugt wurde und anschließend u.a. mit _setsockopt_, _bind_ und _listen_ vorbereitet wurde. Der kleine Netzwerkdienst: ---- SHELL (path=session05,hostname=theon) ---- tcpserver 0 22049 /bin/sh -c 'echo $TCPREMOTEIP' & echo $! >service.pid ----------------------------------------------- ---- SHELL (path=session05,hostname=heim) ---- telnet theon 22049 ----------------------------------------------- ---- SHELL (path=session05,hostname=theon) ---- kill $(cat service.pid) && rm -f service.pid ----------------------------------------------- :navigate: up -> doc:index back -> doc:session05/page03