1. Why is ServIP a pointer and ServPort is not?
ServIP is a char * because that's the type that substantially all C functions require for handling strings. The value is actually a pointer to the first char of the string, which continues up to and including the first char with value 0.
ServPort is not a pointer because there is no reason for it to be one. unsigned short is the type required for this variable's purpose.
The question makes me wonder whether you are among those who take pointer-ness to be analogous to a type qualifier, such as const, that produces a different variant of a base type. This is not the case at all. Pointer types are completely separate types from their pointed-to types. They generally have different size and representation, and are in no way interchangeable with their pointed-to type.* Thus, you use pointers for things that require pointers and not for things that require non-pointers.
2. Are these variables pointers?
struct sockaddr_in ServAddr;
struct sockaddr_in is definitely a structure type, not a pointer type. We know this from the presence of the struct keyword and the absence of * from the type name, together. ServAddr therefore is not a pointer.
WSADATA wsaData;
It is not immediately apparent from the name WSADATA whether that is a pointer type. It is a macro or typedef name that obscures the details (in fact the latter). But if we look it up, we can find its documentation pretty easily, and that reveals that WSADATA is a structure type, not a pointer type. So wsaData is not a pointer.
* With some exceptions related to type void *, which I'm glossing over for the sake of simplicity.
"192.168.1.6"is a string literal, which decays to a pointer to the first element of the string literal.