Ваш клиент создает один сокет и снова и снова пишет в этот один сокет.Ваш сервер, с другой стороны, делает это:
ServerSocket welcomeSocket = new ServerSocket(44444);
while(true) {
Socket connectionSocket = welcomeSocket.accept();
, который принимает входящее соединение, читает одну строку, а затем отказывается от нее (и я предполагаю, что сокет завершает работу, когда сборщик мусора закрываетсясвязь).Затем он ждет нового соединения.
Итак, чтобы решить вашу непосредственную проблему, попробуйте переместить
Socket connectionSocket = welcomeSocket.accept();
BufferedReader inFromClient = new BufferedReader(
new InputStreamReader(connectionSocket.getInputStream( ) ) );
до цикла while.