Technically, you can write a lot of code that will work with very few changes across windows and linux platforms.
However, things get tricky in some cases. It's often easier to go from linux -> windows than from windows -> linux, just because windows users tend to use Windows API calls that do not have linux equivalents.
If you're going to use a GUI, you'll want to try to use a cross platform GUI. Qt or wxWidgets are good options. Qt, in particular, also has many cross platform utility classes that fall outside of the GUI space, and may help with the socket issues.
If your goal is really just to have it working on linux, and the software doesn't have to run on Windows, I'd recommend just jumping in and trying to make it work there from the start. It will be easier than trying to port.
As for a Linux IDE - at some point, plan to jump in and use Linux tools - you'll need a different build system (unless you use a cross platform solution like cmake or scons), there will be different IDEs if you use IDEs, etc.
KDevelop is a nice IDE that will be more familiar than trying to do everything from a command line, if you're used to working in an integrated IDE.