uf, ja bas i nemam iskustva sa winsocketima, verovatno ovde to neko bolje zna, ali pretpostavljam da nema velike razlike u odnosu na unix, pa zato pogledaj ovo:
http://www.manualy.sk/sock-faq/
U principu treba da kreiras socket sa socket(), treba na serveru da se povezes na neki interfejs sa bind() i da pozoves listen() da bi slusao zahteve, treba na klijentu da pozoves connect() da bi se povezao na server, i onda na serveru uradis accept() da prihvatis vezu. Sad imas vezu. Koristi streaming sockets, to ti je TCP varijanta, i koristi blocking pristup. Nadalje samo upisujes podatke u socket na jednom kraju, i citas ih na drugom kraju, potpuno isto kao sto bi radio sa fajlovima . Jedina razlika kod socketa je sto ne postoji garancija da ce ti svi podaci upisani jednim write() stici tako da mozes da ih procitas jednim read()-om, znaci u tvom slucaju prenosa jednog fajla moras da pazis da citas sa socketa dok god ne dobijes EOF (zatvaranje socketa)