Copying /usr/ports will not cut it, because the actual source code required to build a port (the tarball) gets downloaded from the Internet on a 'make' command in a port directory.
You could run a 'make fetch' ('make fetch-recursive' probably) in a port directory on the Internet-connected machine and then copy /usr/ports (including /usr/ports/distfiles, which contains the tarballs) to the disconnected machine (using NFS (preferred), a USB disk/stick or indeed a CD/DVD (very time consuming option!)).
If the machines are similar (same OS version) you can build a port into a package on the Internet-connected machine and simply copy the package to the disconnected machine and install it (and its dependencies) there with pkg_add. Negative side-effect: the ports will have to be installed on the Internet-machine first, so they have to be deinstalled again after that. You'd have to keep track of them and pkg_delete them afterwards.
Mounting /usr/ports over NFS or using rsync to keep the machines' ports trees identical are the easiest and cleanest options, imo, as long as you don't forget to fetch the necessary tarballs and put them in /usr/ports/distfiles on the Internet-side.