This is going to be a rather odd post. I have programmed in Visual Basic for a long time, it is what I started in. I am now trying to move to c. I am getting the syntax down now but I am having a hard time getting my mind into the idea that things are not event driven, for instance, this code only gets executed when this happens, etc. I am trying to write an FTP client for fun and to broaden my C abilities, I can connect, send some data, receive some data, but I have NO idea how to deal with waiting for a packet, handling the packet, coming back, and listening for more data. In VB it would simply be a connection, and do whatever you need and when data comes in the Data_Arrival event of a winsock control would be called and the code in their would be executed. If someone could just take the time and explain exactly how I am supposed to handle different things such as a download\upload being handled along with listening for more data I would really appreciate it. Just a good explanation would be very helpful especially coming from someone who knows vb and c very well. Thanks a lot