при каких условиях сокет готов для чтения и записи?
Посмотрите превосходное руководство Биджа по сетевому программированию здесь .Достойно читать ...
На сервере вы обычно делаете по порядку:
Таким образом, в этом случае ваш сокет будет готов к чтению и записи после успешного прохождения и accept()
accept()
На стороне клиента:
Так что здесь, это было бы готово, если бы оно прошло и успешно connect().
connect()
После того, как сокет связывается с IP-адресом и портом, он готов для чтения / записи. Ваш вопрос специфичен для любого языка?