also is this necessary?
procedure TForm1.OnStatus(Sender: TObject; Reason: THookSocketReason; const Value: string);
No, it's not. It's just to clarify for the user what is happening (connection established, read, write etc.)
firstly i don't know what blcksock do
http://synapse.ararat.cz/doc/help/
i checked this but still don't get it
You shouldn't just dive in the technical manual. Just study the example and learn about what it does.
For instance... TUDPBlockSocket is used to create UDP-variable. It can be used to send out message over the network to a specific IP on a specific port. (that's what you specify in UDP.Connect). UDP.SendString actually sends the data and with RecvPacket you receive data.
blksock is a unit in which TUDPBlockSocket is defined. And like I said... you also need to learn about the terms UDP, TCP, Socket. Did you Google those terms?
also if i make a server, does it only work for the people who are connected to the same wifi?
Normally it only works within the same network. If you want it to work outside your network (i.e. on the internet) you'll need to open up the necessary ports in both routers (which the clients/servers are behind).