Q:

Is there a way to connect 2 browsers without a server? Maybe with Websockets?

I'm looking for a way to connect 1 browser to another without having to incur the network delay of having a server in between.
It doesn't look like HTML5 WebSockets will work because I couldn't find a way to listen for connections in Javascript, only establish a connection.
Does anyone know how to do this? (Connect 2 browsers directly? Like via the 2 computers' IP's directly)

A:

It is funny how things change rapidly with JavaScript, and the fact that the accepted answer (from 2010) says it is not possible :-)
In 2013 yes there is a way to have direct browser to browser communication: WebRTC. It is part of HTML5, and it is being actively developed. It is already available, for example, in Chrome stable releases and in nightly builds of Firefox.
A WebRTC browser provides JavaScript interfaces for:

MediaStreams: access to the host hardware: camera, mic, speaker.
ICE for NAT traversal.
PeerConnection: direct browser-to-browser communication for audio/video streaming.
DataChannel: direct browser-to-browser communication for custom data.

See this blog post for an introduction (a bit outdated, a lot more has been implemented already), this video for a very good overview, the W3C WebRTC JavaScript API and the associated RFCs and Internet Drafts for the network protocols.

A:

No, that is just not doable with JavaScript. 
You'll need a client written in a language that has access to the OS' networking API.

