"tengo que hacer un programa que calcula el area de un triangulo utilizando sockets"
Cada cosa...
1.- Busca un ejemplo de chat open source. El delphi viene con un par de buenos ejemplos y no dudo que existan algunos, sino muchos para java. Busca el más sencillo que funcione que puedas encontrar, repito: el más sencillo posible.
2.- Luego de entender el código adáptalo a tu problema puntual. Estas cosas sólo se aprenden bien con ejemplos. Cuando logres entender todo el código posiblemente no tendrás problemas en hacer otros programas sencillos con sockets.
3.- Supongo que no tendrás problemas con el cálculo del área y mandarlo como chat: En el cliente mandas el comando y parámetros en cadena , y el servidor te lo devuelve en un lenguaje coloquial.
Además tienes que considerar estos casos:
Si envías "Hola" y luego "Mundo" pueden recibirlo fraccionado "Ho", "laMu" y "ndo" y también "HolaMundo" todo junto.
Si envías "HolaMundo" Pueden recibir: "Ho" y luego "laMundo", también "Holamu" y luego "ndo", también "HolaMundo" completo es posible.
Si envías "HolaMundo", luego "HolaMundo" otra vez pueden recibir: "HolaMundoHo" y luego "laMundo".
Si la red "está lenta" los mensajes llegan fraccionados (especialmente si son largos un Kb para arriba, en casos extremos si pasan 100 bytes ya empiezan a fraccionarse). Si la red tiene muchos buffers, los mensajes llegan todo unidos (especialmente si son cortos, unos cuantos bytes) y/o unidos en gran parte y a veces con partes fraccionadas como "HolaMundoHolaMun" y luego "do".
Si quieres mandar todo en binario primero tendrás que planificar tu propio protocolo de envío de comandos, tipos de datos, etc. Es más complejo pero más óptimo.