I don't know objective-c, but I have a few comments:

- for injecting data stream faults, consider also doing it server
  side, potentially much easier than client side,

- the fault-injecting code need not look nice, so using a hex dump is
  quite okay for the task,

- the packets are never actually segmented, it is better to understand
  that the API you are using may not return a whole Netrek packet, and
  you will have to buffer what you have and try reading again,

- build the packets using the same mechanism that you use to unpack
  them, ... which since I haven't seen how you are unpacking them I
  can't imagine how you would pack them.

> What am I missing? Seem like there should be something to change
> "Bob" into "0x42 0x6f 0x62"

char *bob = "Bob";

isn't this a pointer to an array containing 0x42 0x6f 0x62 0x00?

James Cameron