Re: Using UNIX domain sockets
[email protected] ("listas.correo" via beginners) Mon, 15 Jan 2024 22:23:20 +0100
| Newsgroups | perl.beginners |
|---|---|
| Message-ID | <[email protected]> |
Now it works!! Thanks you Claude.
On 1/15/24 20:31, Claude Brown via beginners wrote:
> The first difference I can see is that "echo" adds a newline, but your perl does not. Try adding the newline:
>
> my $cmd='{"command":["stop"]}' . "\n";
>
> This is a wild guess!
>
>
> -----Original Message-----
> From: listas.correo via beginners <[email protected]>
> Sent: Tuesday, January 16, 2024 6:26 AM
> To: [email protected]
> Subject: Using UNIX domain sockets
>
> CAUTION: This email originated from outside of the organization. Do not click links or open attachments unless you recognize the sender and know the content is safe.
>
> Hi,
>
> I am trying to control mpv player using unix sockets but it looks like
> that perl is unable to send the string correctly.
>
> I run the following command:
> mpv --input-ipc-server=~/mpv.sock --idle=yes -v -v
>
> If I sent the string using system commands:
>
> $ echo '{"command":["stop"]}' | socat - ~/mpv.sock | jq
> {
> "data": null,
> "request_id": 0,
> "error": "success"
> }
>
> It works as expected and is accepted by mpv:
> [ipc_1] Client connected
> [cplayer] Run command: stop, flags=64, args=[flags=""]
> [ipc_1] Client disconnected
>
>
> Now I run this perl code:
>
> #!/usr/bin/perl
> use strict;
> use warnings;
> use IO::Socket::UNIX;
>
> my $mpv_socket = IO::Socket::UNIX->new(
> Type => SOCK_STREAM(),
> Peer => "$ENV{HOME}/mpv.sock",
> ) or die "socket failed: ",$!,"\n";
>
> my $cmd='{"command":["stop"]}';
> $mpv_socket->send($cmd);
>
> and it fails to send the correct text:
> [ipc_2] Client connected
> [ipc_2] Client disconnected
> [ipc_2] Ignoring unterminated command on disconnect.
>
> the message "Ignoring unterminated command on disconnect" is because the
> text sent does not seem to be correct and is ignored by mpv.
>
> For what reason could it be that the text sent does not end correctly?
>
> --
> To unsubscribe, e-mail: [email protected]
> For additional commands, e-mail: [email protected]
> http://learn.perl.org/
>
>
>