I'd like to programm a graphical crossplatform Client-Server-Application.
It won't be a tiny programm, so I do have some Questions before starting:

1. What Toolkit to choose ?

It should be crossplatform, and flexible to fit all my purposes.
I was thinking about GTK.

2. How do I best manage my project ?

I've never used a GUI-Toolkit when writing some bigger application.
So how do I manage my Project, integrate the / a GUI into my programm, what are common ways ( e.g. structs, global variables, own directories, ... ) ?
I am asking this, because I'd like to have a organized well maintainable Project.

3. Writing a Client-Server-Application, I have to check, whether my socket(s) are set and/or the GUI received an action at the same time! Maybe afterwards update the GUI , whenever there is incoming data.
What would be the best way (crossplatform?) to solve this problem ?

Sorry for my bad english.

Thanks for your answers!