OK. Went and tried something.
I took 2 instances of Dosbox 0.74 and two copies of the same floppy disk image containing MS-DOS 6.22, EDFSPPP, ethersrv and etherdfs.
And one copy of a hard disk image for MS-DOS (which I transfer files with usually, but it's a copy).
Then booted up one with the hard disk image and ran ethersrv on it, after connecting to UniPCemu's packet server using EDFSPPP.
Then booted up another instance of Dosbox with just a copy of the floppy disk image, used EDFSPPP to connect to the UniPCemu packet server as well. Both got two different MAC addresses, as is expected.
Then ran ethersrv on that Dosbox machine with just ethersrv :: c-c
CD'd to the hard disk drive (which previously wasn't there) and ran dir...
I use Wireshark just to be sure to look at what's being sent. I see packets going in both direction between the server and client's virtual MAC addresses (provided by UniPCemu's server build). Slowly, entry by entry (about 3 entries/second) the directory listing appears.
MD also seems to work properly.
DIR works. Although on long lists the server spams "FindNext failed: DTA not found in cache"?
Trying to use type on a text file gives "File not found - " followed by the filename on the client, and 5 times
"Unsupported subfunction call 0x2E, packet ignored" on the server.
So it appears that the packet driver I made is correctly doing it's job, as the two can communicate with each other.
Things go weird when I try executing anything. The server dumps 'opened file, handle=xx' followed by 'closed file, handle=xx', xx being a number, probably hexadecimal. The client side gives me 'Error in EXE file'.
Edit: Using my EDFSPPP driver with ethersrv and etherdfs programs in direct mode (using the /r command on the 'server' device in answer mode and /s on both to provide the remote a MAC address for the other client), it goes interestingly.
Both can run a server and answer requests from the client on the other side. But only the server without a hard disk (that's in answer mode if i'm not mistaken, unless it was the other way around) can for some reason be seen using the :: command on the other's etherdfs command (it dumps something like 'invalid disk' when being directory listed on)?