On 2021-07-13 08:50, Loris Bennett wrote:
Hi,

In Perl I have the following

   use IO::Socket::SSL;

   my $my_socket = new IO::Socket::SSL(PeerAddr => 'some.server.somewhere,
                                      PeerPort => 12345,
                                     );

   my $line = <$my_socket>;
   print("$line\n");
   say $my_socket 'ECHO 1';
   $line = <$my_socket>;
   print("$line\n");

This runs as expected and I get

   200 Some Server Somewhere - Hello [123.456.789.123]

   310 Hello Echo

If I try the same with the following Python code:

   import socket
   import ssl

   HOST = "some.server.somewhere"
   PORT = 12345

   context = ssl.create_default_context()

   with socket.create_connection((HOST, PORT)) as sock:
       with context.wrap_socket(sock, server_hostname=HOST) as ssock:
           data = ssock.recv(1024)
           print(data.decode())
           ssock.write(b'ECHO 1')
           data = ssock.read(1024)
           print(data.decode())

I get a timeout for the 'ECHO' command:

   200 Some Server Somewhere - Hello [123.456.789.123]

   501 Timeout

Does anyone have an idea what I might be doing wrong?

The docs for Perl says that 'say' appends a newline.

On the other hand, 'ssock.write' doesn't append a newline.

Could that be the problem?
--
https://mail.python.org/mailman/listinfo/python-list

Reply via email to