I am making a program in C# that uses TCPClient for connecting to the server. How do I distinguish for example which byte is for what type of function in my app. I want to somehow mark that byte so I know it's for that exact use so I can easily distinguish it server-side.
Framing, i.e. the job of demarking a stream into messages, is entirely up to you. If you are writing a binary protocol you might, for example, use a header of some fixed number of bytes that tells you the length of the payload that follows and the intent of the frame. If you are writing a text protocol, commonly there is a trailing sentinel character (often CR/LF or NUL) to denote the end of a message, and the first character(s) describe the intent.
But: it is entirely up to you to do this, defining it in a way that makes sense for your protocol. Client and server must agree in this semantic. You should also take care to be explicit about "endianness" in any such specification, if it is binary; and in the case of text: define the culture to be used (often en-invariant) and timezone rules (in the case of dates/times).