Summary of what you are going to install:
- ncat
- curl
Summary of the commands:
sudo apt install ncat sudo apt install curl echo "hello world" > /dev/tcp/localhost/11111 echo "hello world" | nc localhost 11111 curl -v http://yoururl... -H "Accept-Language: en-us" -H "Accept-Encoding: gzip, deflate" -H "Connection: Keep-Alive" -A "Mozilla/4.0 (compatible; MSIE5.01; Windows NT)" -H 'Accept:'
Case scenario 1: Fire and forget
You want to send simple raw data to a socket. You are not interested in displaying the response.
The following command will connect, write the message including a new line and then disconnect:
$ echo "hello world" > /dev/tcp/localhost/11111
If you do not want to include a new line at the end of the message, you may use the following command:
$ echo -n "hello world" > /dev/tcp/localhost/11111
Case scenario 2: Send and receive
You want to send raw data to a socket. You are interested in displaying the response.
The following command requires netcat which may not be installed by default. You can easily install it with the optional command show below:
$ sudo apt install ncat $ echo "hello world" | nc localhost 11111
As noted above, this will include a new line at the end of the message. If you do not want to include a new line you will have to use the -n flag of the echo as described in the previous scenario.
Case scenario 3: Send and receive
You want to send raw data to a socket. You are interested in displaying the response. Your server can handle new lines as delimiters of your messages.
In this case you can use telnet. Note that telnet is line buffered which means that it sends the message only when you press enter.
$ telnet localhost 11111 ...
Case scenario 4: Send proper HTTP headers and receive
You want to send an HTTP header. You are interested in displaying the response.
The following command requires curl which may not be installed by default. You can easily install it with the optional command show below:
$ sudo apt install curl $ curl -v http://yoururl... -H "Accept-Language: en-us" -H "Accept-Encoding: gzip, deflate" -H "Connection: Keep-Alive" -A "Mozilla/4.0 (compatible; MSIE5.01; Windows NT)" -H 'Accept:'
The program curl is a great utility with many flags available. Its needs time to master but it can construct almost any kind of http headers you can imagine.
The example above will construct and send the following headers:
GET yoururl... HTTP/1.1\r\n User-Agent: Mozilla/4.0 (compatible; MSIE5.01; Windows NT)\r\n Host: www.tutorialspoint.com\r\n Accept-Language: en-us\r\n Accept-Encoding: gzip, deflate\r\n Connection: Keep-Alive\r\n \r\n
Case scenario 5: To want to use advanced tools for complex messages
The best tool you could possibly use is postman.