I'm looking to add a feature to my educational program. The program currently saves a PDF document with a set of exam questions and the end user's respective answers to them. I would like to add a way for all clients to send their respective PDF documents to a server (would be teacher), for them to save. I've looked into sockets for the transfer, but I'm not sure if this is to simple for my problem... Any help would be appreciated. Thanks
Since your question is tagged "ftp" i assume this might help you out.
Take a look at the ftplib in python, it's for both python 2.x and 3.x.
>>> from ftplib import FTP
>>> ftp = FTP('ftp.debian.org') # connect to host, default port
>>> ftp.login() # user anonymous, passwd anonymous@
'230 Login successful.'
>>> ftp.cwd('debian') # change into "debian" directory
>>> ftp.retrlines('LIST') # list directory contents
-rw-rw-r-- 1 1176 1176 1063 Jun 15 10:18 README
...
drwxr-sr-x 5 1176 1176 4096 Dec 19 2000 pool
drwxr-sr-x 4 1176 1176 4096 Nov 17 2008 project
drwxr-xr-x 3 1176 1176 4096 Oct 10 2012 tools
'226 Directory send OK.'
>>> ftp.retrbinary('RETR README', open('README', 'wb').write)
'226 Transfer complete.'
>>> ftp.quit()
More about the ftplib module:
This module defines the class FTP and a few related items. The FTP class implements the client side of the FTP protocol. You can use this to write Python programs that perform a variety of automated FTP jobs, such as mirroring other ftp servers. It is also used by the module urllib to handle URLs that use FTP. For more information on FTP (File Transfer Protocol), see Internet RFC 959.
Lookup the ftplib module in the python documentation for 2.x here and 3.x here.