Deklaration und Verwendung der C++-Struktur zum Halten von IP + VerbindungenC++

Programme in C++. Entwicklerforum
Anonymous
 Deklaration und Verwendung der C++-Struktur zum Halten von IP + Verbindungen

Post by Anonymous »

Ich habe eine große Verwirrung bei der Deklaration und Verwendung meiner Struktur, um den Datensatz [IP] - [Verbindungen] zu speichern.
Ich versuche, die IP-Adresse, die eine Verbindung herstellt, in die Struktur einzufügen, und ihre Verbindungsnummer #, zum Beispiel wenn IP 123.123.12 zwei (zwei) Mal eine Verbindung herstellt, dann aktualisiere die [Verbindungen]-Nummer in der Struktur dafür IP (123.123.12).
Ich habe den folgenden Code, der funktionieren sollte:

Code: Select all

// the struct
typedef struct {
int id; // is this useful anyway?
char *ip;
int connNumbers;
}test_sock;

// init struct
test_sock holder[5000];
int len = 0;

// the function
void AddtoStruct(char *ip)
{

if (len == 0) //if empty, insert.
{
len++;
holder->id = len;
holder->ip = ip;
holder->connNumbers = 1; //1 conexiune

return;
}

for (int i = 0; iid != 0) //check if its the same id !?
{
//Exista deja in structura , doar increase connNumbers;
if (strcmp(ip, holder->ip) == 0)
{
holder++;
holder->connNumbers++;
holder->id = antiddos_len;
holder->ip = ip;

return; // should return or not ?!
}
else{ //new IP, insert into struct.
len++; // COUNT AGAIN ?
holder->id = len;
holder->ip = ip;
holder->connNumbers = 1; // 1 connection

return; // should return or not ?!
}
}
}
}
Okay, also was es sein sollte:
Überprüfen Sie die neue eingehende IP, wenn sie BEREITS in der Struktur ist, und erhöhen Sie dann die Anzahl der Verbindungen für diese IP.
Wenn die neue eingehende IP NICHT in der Struktur ist, fügen Sie sie ein, und wenn sie erneut eine Verbindung herstellt, erhöhen Sie natürlich die Anzahl der Verbindungen.
I Nachfolgend habe ich ein Minimalbeispiel zusammengestellt, das Sie problemlos auf einem Windows-Computer mit Visual Studio ausführen können (ich habe 2013 verwendet).

Code: Select all

#include "stdafx.h"
#include 
#include 
using namespace std;

// the struct
typedef struct {
int id; // is this useful anyway?
char *ip;
int connNumbers;
}test_sock;

// init struct
test_sock holder[5000];
int len = 0;

// the function
void AddtoStruct(char *ip)
{

if (len == 0) //if the struct is empty, insert.
{
len++;
holder->id = len;
holder->ip = ip;
holder->connNumbers = 1; //1 conexiune
cout

Quick Reply

Change Text Case: 
   
  • Similar Topics
    Replies
    Views
    Last post