warning: Creating default object from empty value in /home/hplus/ on line 33.
Computers talking to computers.
jwatte's picture

Write your own MMORPG in four hours using Python!

I moderate the multiplayer and networking forum on It's a pretty easy job, because most users are very polite, helpful, and well behaved. However, it seems that, monthly, someone who has never written a networked program shows up and posts their "architecture" for an "MMO" server.

jwatte's picture

Download and Install Etwork

Download the latest version of etwork. You can find the file at the Etwork start page.

Unzip the archive somewhere where you can easily get to it. I use a folder called "c:\code" on my machine, but you can put it in your "My Documents", or "/usr/local/src", or wherever you feel like.

jwatte's picture

Etwork Quick Start

his book will get you started using etwork without too much pain.

Necessary pre-requisites include:

  • Knowledge of C++ programming
  • Microsoft Visual Studio 2005 (or Visual C++ Express 2005 with the Platform SDK addition)
  • The latest version of etwork
jwatte's picture

The Etwork Networking Library

Etwork is a network abstraction library that lets you use UDP or TCP to send packetized messages between machines using a portable C++ interface.

jwatte's picture

Network bandwidth mathematics; peer-to-peer versus client/server

The XNA Forums are now talking about the Xbox Live! networking support added to XNA 3.0. There's some discussion about how large games can be supported on top of the recommended maximum upstream bandwidth consumption of 8 KB/s. (This is a recommendation Microsoft makes for Xbox Live!, based on learnings from deployed broadband connectsion)

jwatte's picture

A simple buffer class for network receive

When you develop socket receive code, you will soon run into the problem that TCP will send data in arbitrary blocks. Even if you send a given string in a single call to send(), that string may arrive as two separate recv() calls -- or may arrive glued together with some previous or following data. Or both.
jwatte's picture

Throttling qmail SMTP receive bandwidth

I wrote the program "throttle.c," which you can insert into the tcpserver chain of commands for a qmail smtpd server. It takes one argument: the number of kilobytes per second to let through on the incoming file descriptor. Throttle does not throttle the outgoing file descriptor, because that's usually just status from your mail server.

jwatte's picture

The Difference Between UDP and TCP

I've written an answer to the question "what's the difference between UDP and TCP" a few times now, so I figured I'd put it here.

jwatte's picture

How to use an introducer to do NAT punch-through for peer-to-peer communication

This document aims to describe how to provide peer-to-peer network communication in the case where both peers are each behind an individual NAT device. This is possible by using a central server for authentication and matchmaking purposes, but once connections are established, the server gets out of the loop and no bandwidth is expended on the server.

jwatte's picture

Introduction to NAT

Q: What kind of firewalling/NAT/proxies are typical with ADSL providers? ADSL is not offered in our corner of Europe and thus it caught us entirely by surprise.

Many ADSL set-ups use NAT. Problems with NAT come when you need to send packets "in" to the user, who are not "replies" to packets going "out" from the user.

Syndicate content