Создание основного писателя C ++ TCPC++

Программы на C++. Форум разработчиков
Ответить
Anonymous
 Создание основного писателя C ++ TCP

Сообщение Anonymous »

Ниже приведен следующий базовый код сокета, который я придумал: < /p>

//General includes:
#include
#include
#include

//Network related includes:
#include
#include
#include

//Target host details:
#define PORT 1234
#define HOST "74.74.74.74"

using namespace std;

//Function prototypes:
string MessageFormat(int, char**);
void MessageSend(string);

int main(int argc, char *argv[])
{
//Parse arguments and format message:
string message = MessageFormat(argc, argv);

//Send the message out:
MessageSend(message);

return 0;
}

string MessageFormat(int argc, char *argv[])
{
//Massage the command line parameters
// into my desired payload format.

return message;
}

void MessageSend(string message)
{
int sd, ret;
struct sockaddr_in server;
struct in_addr ipv4addr;
struct hostent *hp;

sd = socket(AF_INET,SOCK_DGRAM,0);
server.sin_family = AF_INET;

inet_pton(AF_INET, HOST, &ipv4addr);
hp = gethostbyaddr(&ipv4addr, sizeof ipv4addr, AF_INET);
//hp = gethostbyname(HOST);

bcopy(hp->h_addr, &(server.sin_addr.s_addr), hp->h_length);
server.sin_port = htons(PORT);

connect(sd, (const sockaddr *)&server, sizeof(server));
send(sd, (char *)message.c_str(), strlen((char *)message.c_str()), 0);
}
< /code>

Это довольно простое и на самом деле работает. Тем не менее, он отправляет пакеты UDP вместо пакетов TCP, поэтому целевой хост ожидает, что TCP отклонит их. Кроме того, проверяя значения подключения /отправки и просмотр моих интерфейсов с помощью NGREP, я могу 100% проверить, что пакет выходит, так что это не проблема. Как я могу настроить это так, чтобы он работал с точки зрения TCP вместо UDP?

Подробнее здесь: https://stackoverflow.com/questions/164 ... ket-writer
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C++»