Date: Wed, 15 Dec 2021 08:32:49 -0800 From: Chris <bsd-lists@bsdforge.com> To: freebsd-current@freebsd.org Subject: Re: question on socket server Message-ID: <21aa241b4b1af03e188cc1654393641d@bsdforge.com> In-Reply-To: <CA%2BGLnbhqwAWJYDxO0MV27mXhvyqWBdPPnAVd6mfQdiNWvuvahA@mail.gmail.com> References: <CA%2BGLnbiqXQDfMLovYgipiLjSvRSWk%2B1ukDrh779=zZDt3P2L7Q@mail.gmail.com> <1412287950.345.1639565502579@localhost> <CA%2BGLnbhqwAWJYDxO0MV27mXhvyqWBdPPnAVd6mfQdiNWvuvahA@mail.gmail.com>
index | next in thread | previous in thread | raw e-mail
On 2021-12-15 02:55, Piper H wrote:
> But I write this program to listen on port 6666 who sends a random str to
> the socket every 0.25 second. And there is no client connecting to the
> port. The server just runs there without problem. :( So I am not sure
> enough...
>
> use strict;
>
> package MyPackage;
> use base qw(Net::Server);
>
>
> my @fruit=qw(
> ...
> );
>
>
> sub process_request {
> my $self = shift;
> $| = 1;
> my $max = scalar @fruit;
>
> while (1) {
> my $id1 = int(rand($max));
> my $str = $fruit[$id1];
>
> print "$str\015\012";
> select(undef, undef, undef, 0.25);
> }
> }
>
I think it might be easier for you if you have a look at the MILTER
interface to Sendmail. There are a myriad milters written for sendmail.
The entire milter system is (unix) socket driven.
So the examples should prove enlightening? :-)
HTH
-- Chris
> MyPackage->run(port => 6666, ipv => '*');
>
> On Wed, Dec 15, 2021 at 6:51 PM Ronald Klop <ronald-lists@klop.ws> wrote:
>
>> Hi,
>>
>> Just try it!
>>
>> I think you will get an error that you are writing to a not-connected
>> socket.
>> From "man 2 write":
>> " [EPIPE] An attempt is made to write to a socket of type
>> SOCK_STREAM that is not connected to a peer socket."
>>
>> See also "man 2 send" and "man 2 socket" for a lot more information.
>>
>> So it depends a bit on the type of socket you created.
>>
>> Regards and happy hacking,
>> Ronald.
>>
>>
>>
>> *Van:* Piper H <potthua@gmail.com>
>> *Datum:* woensdag, 15 december 2021 07:52
>> *Aan:* freebsd-current@freebsd.org
>> *Onderwerp:* question on socket server
>>
>> Hello
>>
>> I have little knowledge about socket programming.
>> I have a question that, if I have made a socket server, listening on a
>> port. The server prints data to the socket, but there is never a client
>> connection to the port, and the data is never consumed. What will happen to
>> the server then? will the OS kernel be flushed by junk bytes?
>>
>> Thanks for your help.
>> Piper
>> ------------------------------
>>
>>
help
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?21aa241b4b1af03e188cc1654393641d>
