use IO::Socket::INET; use warnings; use strict; # auto-flush on socket $| = 1; my $port_server = 9000; # Port des MITM-Server my $host_server = "127.0.0.1"; # IP-Adresse des MITM-Servers # example data # $data = "\x00\x01\x12\x34\x5A\x86"; # $response = "\x00\x03\x05\x27"; # create a connecting socket # => Wir sind der Client fuer das Endgeraet my $socket_client = new IO::Socket::INET ( PeerHost => $host_server, PeerPort => $port_server, Proto => 'tcp', ); die "cannot connect to the server $!\n" unless $socket_client; print "client-part connected to the server (endpoint)\n"; # my $data = "\x00\x01\x12\x34\x5A\x86"; my $data = "test"; my $data_hex = $data; $data_hex =~ s/(.)/sprintf("\\x%02X",ord($1))/eg; my $size = $socket_client->send($data); print "mitm client sent data of length ".$size." (".$data.")\n"; if (undef($size) || $size == 0) { my $size2 = $socket_client->send($data_hex); print "mitm client sent hex-data of length ".$size2." (".$data_hex.")\n"; } # notify server that request has been sent shutdown($socket_client, 1); # receive a response of up to 1024 characters from server my $response = ""; $socket_client->recv($response, 1024); my $response_hex = $response; $response_hex =~ s/(.)/sprintf("\\x%02X",ord($1))/eg; print "mitm client received response: $response\n"; print " hex: (".$response_hex.")\n"; $socket_client->close();