Summary: This article shares some source code for a Java socket debugging method.
I’ve been writing a lot of Java socket client code lately, and I found that when you're working with a Socket it’s nice to be able to print socket debug information. To that end, I wrote the following method that prints some basic debug information about a Java socket, and I thought I’d share this source code here.
Source code to debug a Java Socket
/** * Prints debug output (to stdout) for the given Java Socket. */ public void printSocketInformation(Socket socket) { try { System.out.format("Port: %s\n", socket.getPort()); System.out.format("Canonical Host Name: %s\n", socket.getInetAddress().getCanonicalHostName()); System.out.format("Host Address: %s\n\n", socket.getInetAddress().getHostAddress()); System.out.format("Local Address: %s\n", socket.getLocalAddress()); System.out.format("Local Port: %s\n", socket.getLocalPort()); System.out.format("Local Socket Address: %s\n\n", socket.getLocalSocketAddress()); System.out.format("Receive Buffer Size: %s\n", socket.getReceiveBufferSize()); System.out.format("Send Buffer Size: %s\n\n", socket.getSendBufferSize()); System.out.format("Keep-Alive: %s\n", socket.getKeepAlive()); System.out.format("SO Timeout: %s\n", socket.getSoTimeout()); } catch (Exception e) { e.printStackTrace(); } }
As you can see, this method takes a Java Socket
as a parameter, and then calls several different methods on the socket to print out useful debug information.
Example Java socket debugging output
Here’s some example output from this socket debug method, showing the results when I create a socket that connects to Google on port 80:
Port: 80 Canonical Host Name: pz-in-f100.google.com Host Address: 74.125.127.100 Local Address: /192.168.1.101 Local Port: 59558 Local Socket Address: /192.168.1.101:59558 Receive Buffer Size: 524660 Send Buffer Size: 131874 Keep-Alive: false SO Timeout: 0
There’s more debug information you can get about a socket, but I thought I’d share this example source code here to help you get started with debugging your socket connections. I hope it helps.