Как отправить данные с одного и того же порта после прослушивания в c ++?

0

Когда я делаю следующие шаги для получения сообщения и отправки ответа, он терпит неудачу. Я использую TCP. Мне нужна программа для отправки данных из того же самого порта, который он получил.

bind()
listen()
accept()
recv()
connect()//it fails to connect here using the same socket.<br>
send()
  • 0
    Вы являетесь TCP-сервером - клиенты подключаются, а не вы! Избавьтесь от попытки подключения. Просто отправьте в тот же сокет, который вы использовали для вызова recv.
  • 0
    Я хочу отправить другому клиенту с того же порта
Теги:
sockets
tcp

1 ответ

3
Лучший ответ

Кажется, у вас есть проблема в понимании того, как работает tcp. Существует сервер и клиент. Сервер ожидает соединений, и клиент устанавливает соединения. Как только соединение установлено, сервер и клиент могут передавать двунаправленные (т.е. Оба могут отправлять и получать сообщения). Конечно, их роль может измениться, но так оно и работает. Итак, сервер делает:

bind()
listen()
accept()
recv()
send()

Он застрял в accept(), пока клиент не выполнит connect() на порту, который прослушивает сервер.

Поскольку мое объяснение довольно короткое, я предлагаю вам прочитать этот урок о сокетах Linux.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню