Not logged in. · Lost password · Register

Forum: Bachelor Softwaresysteme Systemprogrammierung RSS
N kleines tutorial zu sockets
Page:  previous  1  2  3  4  next 
Robert
(Administrator)
Avatar
Member since Nov 2002
559 posts
Subject: Mal was anderes...
Wenn ich meinen Dämon testen mag, versuche ich das so:
>telnet localhost:280**

Aber irgendwie will das nicht, ist mein Dämon kaputt oder muss ich beim telnet noch irgendwelche parameter mitschicken?
Ummm, yeah. We couldn't run an ad that said no Portuguese, but ummm... no Portuguese!
Mikey
SP Team
Avatar
Member since Nov 2002
641 posts
telnet localhost 14873
Robert
(Administrator)
Avatar
Member since Nov 2002
559 posts
:cheesy:

Cool, mein Dämon geht, danke für die fixe Antwort!
Ummm, yeah. We couldn't run an ad that said no Portuguese, but ummm... no Portuguese!
Robert
(Administrator)
Avatar
Member since Nov 2002
559 posts
Kann mir das mit dem Sigpipe vielleicht nochmal jmd erklären, ohne dabei mit haufenweise Linux Begriffen um sich zu schmeissen?
Mein Dämon hört jetzt halt auf, wenn das write() einen Fehler schmeisst, aber was hat das mit SigPipe zu tun?
Ummm, yeah. We couldn't run an ad that said no Portuguese, but ummm... no Portuguese!
Ford Prefect
Pangalaktischer- Donnergurgler-Trinker
(Administrator)
Avatar
Member since Oct 2002
3298 posts
Signal: Pipe

This signal is raised when a program writes to a socket or fifo that has no readers. The default action of this signal is to cause the program to terminate.

You might see this message if you have a series of commands in a shell pipe line and one of the processes quits. Eg:

  $ cat somefile | head

After "head" has printed out the first 10 lines and quits, "cat" will get a pipe error. However, cat catches the signal and quits gracefully. If you pipe the output of some cvs(1) commands into less(1) and quit, then you might see the shell print out a message as cvs doesn't handle this signal gracefully.



// google suche nach "sigpipe", 2. ergebnis

falls dir die erklärung aber nichts hilft, kann ichs gerne noch mal mit eigenen worten versuchen :)
Quote: <mute> mit Miranda macht irc kein spass :P <Loki|muh> dann geh doch wieder :)
<mute> ich benutze kein miranda <Loki|muh> na und? :)
Robert
(Administrator)
Avatar
Member since Nov 2002
559 posts
sowas hab ich schon auch gelesen, ich weiss nur nicht wie ich das anwenden soll? Heisst dass, ich muss einfach das write()machen, und wenn "-1" zurückkommt kam das SigPipe Signal (oder es gab einen Fehler)?
Oder muss ich das Sigpipe Signal irgendwie speziell abfangen (hab die trshell noch nicht, da kommen doch auch Signale vor, muss ich die schon kennen dazu?)
Ummm, yeah. We couldn't run an ad that said no Portuguese, but ummm... no Portuguese!
Mikey
SP Team
Avatar
Member since Nov 2002
641 posts
wenn du gar nichts machst killt das sigpipe dir das kind das ist zwar nicht grade sauber sollte aber funktionieren..
snehls
Superfreund aka Der Schwede
Avatar
Member since Oct 2002
750 posts
timed.c: In function `main':
timed.c:30: warning: implicit declaration of function `write'
timed.c:39: warning: implicit declaration of function `close'

... hab ich falsche flags für den gcc gesetzt oder woher kommt das ??? bzw. was ist das   :-D
"I will speculate that today’s single-threaded applications as actually used in the field could actually see a performance boost for most users by going to a dual-core chip, not because the extra core is actually doing anything useful, but because it is running the adware and spyware that infest many users’ systems and are otherwise slowing down the single CPU that user has today."
Mikey
SP Team
Avatar
Member since Nov 2002
641 posts
header unistd.h vergessen?
snehls
Superfreund aka Der Schwede
Avatar
Member since Oct 2002
750 posts
uuuuuuups  :wand:
danke !!!  :-D
"I will speculate that today’s single-threaded applications as actually used in the field could actually see a performance boost for most users by going to a dual-core chip, not because the extra core is actually doing anything useful, but because it is running the adware and spyware that infest many users’ systems and are otherwise slowing down the single CPU that user has today."
Robert
(Administrator)
Avatar
Member since Nov 2002
559 posts
In reply to post #22
Quote by Mikey:
wenn du gar nichts machst killt das sigpipe dir das kind das ist zwar nicht grade sauber sollte aber funktionieren..

Okay, dann ist mein Dämon fertig  :-D
Ummm, yeah. We couldn't run an ad that said no Portuguese, but ummm... no Portuguese!
Steppenwolf
Schläfer
Avatar
Member since Nov 2002
1535 posts
noch ein (hoffentlich) letztes mal zu sigpipe. mein bisheriger code:

while (write (othersocketchild [...]) != -1) {
                                [...]
                        }
                        close (othersocketchild);
                        exit (EXIT_SUCCESS);

heisst das also, dass meine letzten beiden zeilen nicht noetig sind, er bei einem sigpipe also schon vorher terminiert und gar nicht soweit kommt? dann waere es immerhin noch sinnvoll, fehlerabfrage zu machen, weil write () ja auch wegen anderen sachen -1 returnen kann...
Steppenwolf
Schläfer
Avatar
Member since Nov 2002
1535 posts
noch eine frage:
soll man den port, den man benutzen soll irgendwie ueber den output von /usr/bin/id ermittelt oder einfach per #define an den anfang machen?
Steppenwolf
Schläfer
Avatar
Member since Nov 2002
1535 posts
sodala, letzte frage fuer heute:
langt ein
listen (mysocket, 1)
eigentlich, also eine 1-elementige queue, wenn danach sowieso sofort geforkt wird? oder soll man zur sicherheit 5 connections in die queue lassen?
Mikey
SP Team
Avatar
Member since Nov 2002
641 posts
3) mach zur Sicherheit doch lieber 5 Connections ;)
2) ist egal ob du den hardcodest oder getuid() aufrufst
1) Fehlerabfrage für write auf jeden Fall. Schöner wäre es auch wenn du das SIGPIPE abfängst, zB SIG_IGN und danach errno auf EPIPE prüfst, dann terminiert dein Programm auch gescheit.
Close Smaller – Larger + Reply to this post:
Verification code: VeriCode Please enter the word from the image into the text field below. (Type the letters only, lower case is okay.)
Smileys: :-) ;-) :-D :-p :blush: :cool: :rolleyes: :huh: :-/ <_< :-( :'( :#: :scared: 8-( :nuts: :-O
Special characters:
Page:  previous  1  2  3  4  next 
Go to forum
Datenschutz | Kontakt
Powered by the Unclassified NewsBoard software, 20150713-dev, © 2003-2011 by Yves Goergen