use unsigned short instead of short to represent tcp port