add tcp server functions