Information    Information
Input from new and anonymous users must be approved before it is displayed.

Select Settings->Control Panel from the Start Menu.
Select Regional and Language Options.
Select the Languages tab.
Check Install files for complex script and right-to-left languages (including Thai) to activate Hindi fonts.
Check Install files for East Asian languages to activate Chinese fonts.

A network connection begins with a socket. The working socket eventually has an address, a port, and a handle. The socket becomes either a connected socket (client) or a listening socket (server.)
The first step is to Bind the socket to the computer's IP address and a port. The operating system will supply a port if none is specified. Client sockets generally use a system assigned port to avoid any conflict. Server sockets, however, must specify a port to make the server accessible.
Client sockets will now attempt to Connect to a server's IP address and port.
Server sockets will Listen for connection attempts on their IP Address and port. They wait for connection attempts and Accept them. Once accepted, the server socket will create a new socket with a new handle and pass the accepted connection to it.
Client and accepted server connections are now free to Send and Receive from each other.
At some point, either the client or the server will want to close the connection. The graceful way to achieve this is to Shutdown the socket. This will inform the peer socket an intention to close. The ungraceful way is to just Close.
This is a basic explanation of networking. The process can end up being much more complicated. This explanation is the common sequence of events you will see traced in Why Can't I Connect?.

DNS matches user friendly names to IP addresses.

For instance: =

DNS is also a way to handle server repair and maintenance. The IP address may be changed for the name to maintain the server's availability.

Did you know that there are separate settings for the application language and the trace language?
These languages may be set in the first page of the application preferences.

Did you know you can set a persistent log file to open when the application starts?
Look on the first page of the application preferences to set the file name.

Did you know you can set the send and receive timeouts for your connections?
Look on the first page of the application preferences to set these timeouts.

Did you know you can add line numbers to the viewable and / or the log file trace?
Look on the first page of the application preferences to set the line number options.

Did you know you can set how the application supports localhost?
Look on the second page (Advanced) of the application preferences to set the localhost behavior options.

Did you know you can drag and drop part or all of the trace into a document or email?
Simply drag the selected item(s) to your email or document. Select a trace item by left clicking. Select additional items by pressing [Ctrl] and left clicking. You may select a range of items by pressing [Shift] and left clicking. You may select the entire trace using 'Select All' from the 'Edit' menu, pressing [Ctrl] + [A], or right click and 'Select All'.

Did you know you can detect TCP/IP problems between existing clients and servers by inserting (Bridging) "Why Can't I Connect?" between them?
Connect your existing client to the 'Bridge Server'.  Connect the 'Bridge Client' to the existing server.  All traffic will now pass through "Why Can't I Connect?".  Check 'Help / Instructions' for a more detailed description.

Did you know you can connect to any port with a Generic Client and listen on any port with a Generic Server?

Here is a partial list of services and their ports that a Generic Client might connect:
Service Name Port(s)
bacula 9101, 9102, 9103
dns 53
epmap 135
http 80
https 443
ipp / cups 631
kerberos 88
NetBIOS 137, 138, 139
nfs 2049
postgresql 5432
rdp 3389
rpc 530
rpc-bind 111
samba / smb / cifs 139, 445
slp 427
smux 199
sna 108
snmp 162
SpamAssassin 783
telnet 23, 992
whois 43

In this release:

1. Upgraded wxWidgets to 3.0.x
2. Added host name reformatting which removes errors from an entered host name.
3. Added a trace to show the original and the reformatted host name.

wxWidgets to 3.0.x:
Windows users should notice little if any differences. Linux users may see many user interface changes depending on the GTK+ theme they are using. There are problems with some controls while using certain themes (Oxygen-gtk for example.) As these are known problems for other applications, I haven't made any changes as of yet.


The Code::Blocks project file (WhyCantIConnect.cbp) uses the global variable (#wx30 as opposed to #wx) for path information to wxWidgets 3.0.x includes and libraries. This allows support for both wxWidgets 2.x.x and 3.0.x projects. If you do not have a wxWidgets 2.x.x build and this doesn't match your environment, you may need to change the #wx30 references to #wx in the project file or (an easier solution) clone the Code::Blocks global variable #wx to #wx30.

The configure script is self correcting and requires no changes when running.

wxWidgets 3.0.x builds using the Code::Blocks project file (WhyCantIConnect.cbp):
Compile and link options are set to use wx-config-3.0, you may need to switch these to wx-config depending on your operating system and your support for wxWidgets 2.x.x.

Full compile instructions are available in the source package (README.Windows, INSTALL.Windows, README.Linux, and INSTALL.Linux.)

In this release:

1. Added a major enhancement to the Neighbors Tool. The tool will now search by port connections as well as ICMP echo requests and the socket function getnameinfo. 15 common ports have been predefined as well as the ability to add additional ports. The predefined ports are:

AppleTalk (201)
AppleTalk routing maintenance.

AppleTalk (202)
AppleTalk name binding.

AppleTalk (204)
AppleTalk echo.

AppleTalk (206)
AppleTalk zone information.

http (80)
World Wide Web.

https (443)
Secure / SSL http.

ipp / cups (631)
Internet printing protocol / common Unix printing system.

NetBIOS (137)
NetBIOS name service.

NetBIOS (138)
NetBIOS datagram service.

NetBIOS (139)
NetBIOS session service.

nfs (2049)
Network file system.

samba / smb / cifs (445)
Samba / server message block / common internet file system.

snmp (161)
Simple network management protocol.

snmp (162)
Simple network management protocol trap.

ssh (22)
Secure shell.

There is also the ability to search by ports exclusively. For example, search a range of IP address that are listening on http (port 80).

2. Added a question dialog in preferences after changing the application language to synchronize the trace language.

3. Now showing the currently open trace file in the status line while hovering over the 'Create / Change The Log File' menu option.

4. Fixed a bug where false positive ICMP echo requests were occasionally reported in the neighbors tool.

5. Fixed a small memory leak in the neighbors tool.

In this release:

1. Optimized the "Ports In Use" and the "Neighbors" tools. The "Ports In Use" tool runs significantly faster. Both the "Ports In Use" and "Neighbors" tools' "Cancel" buttons are quicker to respond to a user request.

2. Created a combo box class for the language selections. This is for internal management and does not change the user interface.

Technical details:

The "Ports In Use" tool and the "Neighbors" tool processes now run on their own worker threads. Traces are posted to the primary thread through the event queue.

In this release:

1. Changed the visible trace to be easier to read. The trace shows in your normal font except for hexadecimal traces which show in a monospace font. Function headers display in blue, errors display in red, and warnings display in green. This matches to the look and feel of the "Why Can't I Connect?" Android companion app.

2. Changed the remembering of a server name to the drop down list from when it is connected to when it's IP address is resolved.

3. Changed the default timeouts from 60 seconds to 20 seconds. This only effects new installs. Previous installs will still need to change the timeouts in the preferences dialog.

4. Switched the "Ports In Use" default port type to listening.

5. Fixed a bug in the "Script Save As" to include the script run time parameters.

The "Why Can't I Connect?" 1.1.0 Android companion app is now available.
In this release:
1. Added the "Tools" menu.
2. Added the "Resolve Name / IP Address" function to the "Tools" menu and created a button bar. The "Resolve Name / IP Address" function converts a host name to an IP address or an IP address to a host name.
3. Added the "Check WiFi Login" function to the "Tools" menu and created a button bar. The "Check WiFi Login" function launches the default WiFi login in your preferred browser. The error pattern for a possible WiFi incomplete login is detected on any connection and will query if you would like to check the login.
4. Added the "Irc / Ldap / Usenet" toolbar.
5. Fixed a small bug.
Available at Amazon
Android is a trademark of Google Inc.

In this release:

1. Added the "Check WiFi / Wired Network Login" menu item to the tools menu and button to the toolbar. This function launches the default router login / TOS (Terms Of Service) IP address in your preferred browser.

2. Added a check to see if the error pattern of a possible incomplete WiFi / wired network login is detected on any connection and ask if you would like to launch the default router login.

3. Added some minor optimizations.

4. Fixed some minor bugs.

A network will commonly require you to login and / or agree to their terms of service. On an unsecured network this usually happens automatically when you first bring up the browser otherwise all connections will fail. The "Check WiFi / Wired Network Login" function checks for a bindable address supplied by DHCP ( for example). If found, the address for the router login is built from the subnet and .1 ( for example). This address is launched in your preferred browser ( for example) which should bring up the router login / terms of service web page.

"Why Can't I Connect?" may be installed and updated in Ubuntu directly from the "Ubuntu Software Center" by installing the application's Launchpad ppa.  Run the following three commands in a terminal to activate the ppa:
sudo add-apt-repository ppa:wciccmsadmin/whycanticonnect
sudo apt-get update
sudo apt-get install whycanticonnect

In this release:

1. Fixed an occasional crash primarily in Linux systems.
2. In the WiFi / wired login check, test that the expected router login page is listening on port 80 before launching it in a browser.
3. Fixed various small bugs.

In this release.

1. Added a cancel button to the connecting progress dialog.
2. Moved the acquiring local address, binding, and acquiring server address functions to their own thread. Added a progress / cancel dialog for this thread.
3. Added detection of system logout / shutdown signals to close the application, destroy temporary files, and flush the trace file.

System logout / shutdown signals differ between operating systems.

Windows: The application will clean up on logout, reboot, and shutdown. The application will NOT clean up when closed from the task manager.

Linux: The application will clean up when closed from the System Monitor, and depending on the Linux configuration, logout, reboot, and shutdown. The Linux configuration must be set to issue SIGHUP signals (by default, Ubuntu does, Fedora does NOT. Check the documentation on your particular operating system to enable SIGHUP signals.)

In this release

1. Added SSL / TLS support for IMAP, POP3, SMTP, LDAP, Usenet, and Generic Client connections.

2. Added a trace showing the SSL / TLS certificate information after a connection.

3. Fixed a bug when connecting a Generic Client that expects a response.

Warning: this application links to the openssl libraries. Do not download this application if this is illegal in your country.

The SSL / TLS certificate information trace shows the valid date range and subject information if the trace detail level is set to Medium. The trace additionally shows the issuer information if the trace detail level is set to High.

The "Why Can't I Connect?" 1.3.0 Android companion app is now available.
In this release:
1. Added SSL / TLS support.
2. Added a trace showing the valid date range, subject, and issuer information of a certificate on completion of a successful SSL / TLS connection.
Get it on Google Play
Available at Amazon
Android is a trademark of Google Inc.

Add new comment

Filtered HTML

  • Web page addresses and e-mail addresses turn into links automatically.
  • Allowed HTML tags: <a> <em> <strong> <cite> <blockquote> <code> <ul> <ol> <li> <dl> <dt> <dd>
  • Lines and paragraphs break automatically.

Plain text

  • No HTML tags allowed.
  • Web page addresses and e-mail addresses turn into links automatically.
  • Lines and paragraphs break automatically.