Я пытаюсь написать чат-сервер на C, который позволяет общаться между двумя клиентами с помощью сокетов POSIX. Я не уверен, что хорошо разбираюсь в этой концепции или в том, как мне настроить протокол связи между клиентами и сервером.
Я знаю, что мне нужен один сокет для bind()
порта сервера, чтобы я мог принимать входящие соединения от клиентов, но для одновременного подключения двух клиентов мне нужно создать сокет для каждого из этих клиентов когда я accept()
или я accept()
клиент, а затем fork()
, чтобы я мог принять другого клиента? Я пока не беспокоюсь о параллельном чате, это скорее пинг-понг, когда клиентам нужно подождать recv()
после того, как они send()
, прежде чем они смогут напечатать новое сообщение.