Client server socket

stateDiagram
    [*] --> ServerIdle
    [*] --> ClientIdle

    ServerIdle --> AcceptingConnections: Start Server
    AcceptingConnections --> WaitingForClient: Accept Client Connection
    WaitingForClient --> ProcessingRequest: Receive Client Message
    ProcessingRequest --> SendingResponse: Process and Display Message
    SendingResponse --> ServerIdle: Send Response to Client

    ClientIdle --> SendingRequest: Start Client
    SendingRequest --> WaitingForResponse: Send Message to Server
    WaitingForResponse --> ProcessingResponse: Receive Server Response
    ProcessingResponse --> ClientIdle: Display Server Response

    ProcessingRequest --> ServerIdle: Invalid Integer Received
    ProcessingResponse --> ClientIdle: Invalid Integer Sent