Port identification - issues ensuring both parties know the right addr/port - entered by user/admin (communicated by other means) - hard coded in .h files - loaded from config file - default (from one of above) overridden by port/addr included in a message - issues with port contention with other clients/servers and apps - single port vs selecting from a port range Comm methods - set up recv socket, send socket - set up send (host, port, sets flag and descriptor and send addr/port) - set up recv (port, sets flag and descriptor and recv addr/port) - send (check if socket set up and matches target) - recv (check if socket set up) - close recv (close socket and clear flag) - close send (close socket and clear flag) - things like ack sequence/format left to the client/server apps Comm fields - flags for whether send/recv sockets currently set up - descriptors and structs for send/recv sockets and addr - current send addr and port - current recv addr and port Synchronizing client local machine time with server local machine time - can use server's time and modify for time zone BUT what if client or server's time is off by a bit (or a lot)? - calc shortest round trip comm time, split the difference, and use that as the offset between client and server times?