I never see that error before where it actually said what the cause was . It might be your firewall. Do you have a firewall? For that matter is the Vista firewall on? If so, add CC Generals to the allow list. You may want to go into the game's options and look at the bottom there to turn on Send delay. I would press the refresh NAT too.
This is just Generals or Zero hour?