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-li...@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 <pott...@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
------------------------------



Reply via email to