No todo lo que aquí se expone son malas ideas, he preferido abrir un post nuevo por lo extenso, pero esta es la idea que se
sugiere en otro post que leí esta mañana cuando me levante. Yo no estoy capado, (esta tarde se apago el moden y se volvió
a encender pero todo sigue igual de descapado que siempre)
Así que voy a intentar dar un poco de luz al asunto o por lo menos mi luz, ya luego me corregirán los fallos.
Bueno al grano, lo primero presentar al paquete emule. Es buen amigo de casi todos vosotros, pero no parece que sea
conocido en profundidad.
El protocolo emule es extenso aquí solo me centrare en lo que supuestamente están capado si alguien cree que no es este
tipo de paquetes pues nada, probamos con las peticiones o con los que sea.
EL PAQUETE DE ENVIO DE DATOS.
Esto que vemos aquí arriba es una parte del paquete, el numero marcado en azul es el que dice que es un paquete de
emule, apartir de ahí empiezan los datos del protocolo emule, antes los datos que hay son los datos referentes al protocolo
tcp/ip
Aquí abajo se aprecia mucho mas claro como se descompone el paquete.
Creo que esto de que es un paquete de emule de envió de datos y que campos tienen ha quedado mas que clarito.
Ahora viene lo bueno.
Programa para enviar un paquete de emule a la ip y puerto que se quiera:
#include
#include
#include
#include
#include
#include
#include
#include
#pragma comment(lib, "user32.lib")
#pragma comment(lib, "ws2_32.lib")
#define SOCKS4_EXECBYTE 133
#pragma pack(push, 1)
#pragma pack(pop)
#ifndef WIN32
#define CRITICAL_SECTION pthread_t
#endif
unsigned char peer0_0[] = {
0xc5, 0x64, 0x13, 0x00, 0x00, 0x40, 0x12, 0x4e,
0xd8, 0x34, 0xaa, 0x4b, 0xc5, 0xf7, 0x4c, 0x5c,
0xc2, 0x71, 0x0b, 0x4a, 0x7d, 0x3d, 0x00, 0x00,
0x00, 0x00, 0x4b, 0x13, 0x00, 0x00, 0x78, 0xda,
0xb5, 0x59, 0x5d, 0x72, 0xdc, 0x38, 0x92, 0x7e,
0x1e, 0x45, 0xe8, 0x0e, 0xf4, 0xd3, 0xcc, 0xec,
0x38, 0xdd, 0x55, 0x00, 0x8a, 0x00, 0x1c, 0xfb,
0xb0, 0x02, 0x28, 0x82, 0x26, 0x9b, 0x12, 0x49,
0xa3, 0x41, 0xb2, 0xdf, 0xca, 0x52, 0xd9, 0xae,
0x69, 0x49, 0xa5, 0xa9, 0x2a, 0x59, 0xa3, 0x8d,
0x3e, 0xc5, 0x5e, 0x62, 0x2f, 0x32, 0x57, 0x98,
0xa3, 0xcc, 0xfb, 0x7e, 0x60, 0xc9, 0xb6, 0xdc,
0xd1, 0x3d, 0xf6, 0xee, 0xc6, 0x94, 0x22, 0xf4,
0x43, 0x00, 0x89, 0xfc, 0xf9, 0xf2, 0xcb, 0x4c,
0x2a, 0x5f, 0x5f, 0xad, 0x92, 0xb3, 0xe5, 0xf5,
0xea, 0x65, 0x52, 0xaf, 0x2f, 0xb6, 0x9b, 0xdd,
0xe6, 0xed, 0x3e, 0x69, 0xb6, 0x9b, 0xcb, 0xbb,
0x8b, 0x7d, 0x52, 0xad, 0x1e, 0x7e, 0xbf, 0x4b,
0xd8, 0x6c, 0xc6, 0x8e, 0x8f, 0x4e, 0xee, 0xf6,
0xef, 0x37, 0xdb, 0x24, 0x49, 0x5e, 0x26, 0xff,
0xf8, 0xfb, 0x7f, 0xff, 0xcd, 0xff, 0xed, 0xec,
0xef, 0xff, 0x38, 0x3e, 0x0a, 0xab, 0xed, 0x6e,
0xbd, 0xb9, 0x49, 0xe6, 0x2f, 0xe6, 0xc7, 0x47,
0xc7, 0x47, 0xc5, 0x6a, 0xbb, 0x4a, 0xd6, 0xbb,
0x64, 0x99, 0x5c, 0x6c, 0xae, 0xae, 0x56, 0x17,
0xfb, 0xb8, 0xb6, 0x79, 0xfb, 0x2b, 0xa2, 0x7f,
0x5a, 0x3d, 0xec, 0x92, 0x57, 0x49, 0xb1, 0xfc,
0xb0, 0xfa, 0xb8, 0x77, 0x75, 0x99, 0x6c, 0x3e,
0xac, 0xb6, 0xc9, 0xfe, 0xfd, 0x2a, 0x79, 0x58,
0x2d, 0xb7, 0x71, 0xfd, 0x7d, 0x5c, 0xbf, 0xd9,
0x24, 0xeb, 0xcb, 0xd5, 0x32, 0x39, 0x3e, 0xea,
0xdf, 0xaf, 0x2f, 0xde, 0x27, 0x9b, 0x9b, 0xd5,
0x2e, 0xb9, 0xdf, 0x6c, 0x7f, 0x4a, 0x96, 0x37,
0x97, 0xc9, 0xfd, 0xf4, 0xec, 0x72, 0x73, 0xf3,
0xfb, 0x7d, 0xf2, 0xe6, 0x6e, 0x8f, 0x43, 0x6f,
0x56, 0x57, 0xeb, 0x15, 0xce, 0x41, 0xd0, 0x43,
0xb2, 0xbc, 0xba, 0x4a, 0x76, 0xef, 0x37, 0x77,
0x57, 0x97, 0x8f, 0x47, 0x76, 0x87, 0xe7, 0x17,
0xb0, 0x39, 0x79, 0xbb, 0xdd, 0x5c, 0x27, 0x5b,
0x6c, 0x5f, 0xbe, 0x81, 0x1b, 0x8e, 0x8f, 0x5e,
0x6f, 0xee, 0xb6, 0x17, 0xab, 0xdd, 0x8b, 0xe4,
0xd5, 0xdb, 0xe4, 0x61, 0x73, 0x97, 0xbc, 0x5d,
0xe3, 0x02, 0x5c, 0x87, 0x23, 0xcb, 0x3d, 0xee,
0xc0, 0xbd, 0x37, 0x9b, 0xfd, 0x41, 0xd0, 0xed,
0xd5, 0x6a, 0xb9, 0x5b, 0x25, 0xbb, 0x15, 0xb6,
0x40, 0xd4, 0xf2, 0x26, 0x59, 0x5d, 0x2f, 0xd7,
0xb8, 0x6c, 0xbf, 0xdc, 0xaf, 0x6f, 0xde, 0xc5,
0xf3, 0xdb, 0x24, 0xda, 0x7c, 0xbf, 0xdc, 0xae,
0x9e, 0x43, 0xf8, 0x87, 0x83, 0xaf, 0x9e, 0x5f,
0x6c, 0xee, 0x6e, 0xf6, 0xdb, 0x87, 0xe4, 0xe4,
0x93, 0xf2, 0xb7, 0x9f, 0x9d, 0x32, 0x5d, 0x7b,
0x1f, 0xdd, 0x78, 0xb7, 0x83, 0x94, 0x17, 0x49,
0x74, 0xab, 0x7f, 0xbf, 0xbc, 0xf9, 0x09, 0x7a,
0x6f, 0x5e, 0x26, 0xf7, 0xf7, 0xf7, 0x2f, 0x96,
0xb8, 0xe2, 0xea, 0xc3, 0x1a, 0xdf, 0x5f, 0xbc,
0xd9, 0xfc, 0xf5, 0xc5, 0xee, 0xa7, 0xe7, 0xd3,
0xe3, 0xf7, 0x9b, 0xfd, 0x9b, 0xcd, 0xfe, 0xc5,
0xc5, 0xe6, 0xfa, 0xf9, 0x67, 0x87, 0x3f, 0x9f,
0x7c, 0x04, 0x6f, 0xe0, 0xc2, 0x0d, 0x0c, 0xdf,
0x26, 0x17, 0xb8, 0x3d, 0xd9, 0xc0, 0x51, 0xf1,
0xaf, 0x83, 0x65, 0xc7, 0x47, 0xc9, 0xe7, 0x4f,
0xb1, 0xba, 0xba, 0x5d, 0x1d, 0xac, 0xbe, 0x5f,
0xe2, 0xd0, 0x16, 0x12, 0xa6, 0x93, 0x51, 0x93,
0xe3, 0xa3, 0xd3, 0xc9, 0xc8, 0x68, 0xf0, 0xfe,
0x65, 0xb2, 0x39, 0x7f, 0x7d, 0xe2, 0x4f, 0xce,
0xce, 0x37, 0xff, 0x71, 0xbd, 0xd9, 0xed, 0xe9,
0x7e, 0x79, 0x83, 0x28, 0x46, 0x0d, 0x26, 0xb5,
0x2f, 0x36, 0xb7, 0x0f, 0xf7, 0xeb, 0xed, 0x1e,
0x90, 0xb8, 0x79, 0x0b, 0xdd, 0x5f, 0x1d, 0x5c,
0x18, 0x03, 0xb5, 0x5d, 0x21, 0x2e, 0x0f, 0xc9,
0xf5, 0x72, 0xbf, 0x87, 0x4a, 0xf7, 0xd1, 0xbb,
0xeb, 0xe4, 0x16, 0x4a, 0xad, 0x6f, 0x92, 0x49,
0xad, 0x8b, 0xe5, 0x1d, 0x9c, 0x1b, 0x83, 0x17,
0x1d, 0xb2, 0xdc, 0x21, 0x84, 0x57, 0xf0, 0x3e,
0x5c, 0x99, 0xfc, 0xf9, 0x6e, 0xb7, 0x4f, 0xde,
0x2d, 0x6f, 0x6e, 0x96, 0x5f, 0xe8, 0x3d, 0x7d,
0x2e, 0x37, 0x07, 0x61, 0x93, 0x17, 0xa1, 0x4d,
0x72, 0xbf, 0xde, 0xbf, 0x4f, 0xd6, 0x7b, 0xd8,
0xf0, 0x30, 0x99, 0x33, 0x1d, 0x8e, 0xde, 0xdf,
0x6f, 0xe0, 0xee, 0xd5, 0x6d, 0x72, 0xfd, 0x90,
0xdc, 0x44, 0x28, 0x00, 0xa8, 0xd8, 0x76, 0x08,
0xea, 0x8b, 0x83, 0xd3, 0x71, 0xff, 0x01, 0xf4,
0x40, 0xf0, 0xfe, 0x3d, 0x60, 0xfd, 0x36, 0x26,
0xcb, 0xe4, 0x90, 0x87, 0xc9, 0x3f, 0xef, 0x61,
0x34, 0x82, 0xf4, 0x5d, 0xb1, 0xb9, 0xba, 0x8c,
0x21, 0x87, 0x80, 0xfd, 0xf2, 0x27, 0xa8, 0x79,
0x76, 0x0e, 0x0b, 0x77, 0xb7, 0x9b, 0x9b, 0xdd,
0xfa, 0xcd, 0xfa, 0x6a, 0xbd, 0x7f, 0x48, 0xde,
0x6e, 0x0e, 0xc0, 0x8e, 0x3a, 0x1c, 0x1f, 0x8d,
0x50, 0x2f, 0xda, 0x17, 0x9f, 0x44, 0xdf, 0x6c,
0xe1, 0x88, 0x98, 0x2a, 0x00, 0xc2, 0x07, 0x40,
0xfd, 0x32, 0xba, 0xe1, 0xd3, 0x8d, 0x2f, 0x12,
0xff, 0xe9, 0x72, 0xfc, 0x9c, 0xdc, 0x13, 0xc5,
0xdd, 0x6e, 0xd7, 0x1f, 0x96, 0x70, 0xee, 0xed,
0xdd, 0xf6, 0x76, 0xb3, 0xc3, 0xad, 0x9b, 0x9b,
0xab, 0x28, 0x3c, 0xe2, 0xea, 0x75, 0x71, 0xfe,
0xc3, 0xf7, 0xd9, 0xd9, 0xef, 0x7d, 0x62, 0x4e,
0x93, 0xec, 0xbc, 0x3f, 0xfb, 0xfe, 0xfc, 0x24,
0x3b, 0xcd, 0x92, 0xf3, 0x2e, 0x09, 0xaf, 0x4e,
0x7b, 0xfc, 0x66, 0xc6, 0xe4, 0xe4, 0x6c, 0x3c,
0x3f, 0x3b, 0x4d, 0xfa, 0xe2, 0xc4, 0xbf, 0x3e,
0x3f, 0x0d, 0xa7, 0xdd, 0xb3, 0x8f, 0xb8, 0x8f,
0x6e, 0x5e, 0xbe, 0xc5, 0x8d, 0xeb, 0x65, 0x4c,
0xcb, 0xc9, 0x89, 0xd1, 0xe8, 0xe3, 0x23, 0x17,
0x53, 0xf4, 0xe6, 0x7a, 0x75, 0x03, 0x64, 0x41,
0x87, 0x93, 0x33, 0xff, 0x8a, 0x9a, 0xf5, 0x76,
0x79, 0xf1, 0x90, 0xbc, 0xdb, 0x6e, 0xee, 0x6e,
0x9f, 0x7f, 0xf2, 0xcf, 0x04, 0x36, 0xe4, 0xd6,
0x24, 0x61, 0x5a, 0x9b, 0x96, 0xa6, 0xe4, 0x59,
0x4d, 0x3e, 0x8d, 0x2e, 0x8c, 0xb7, 0x1d, 0x1f,
0xd9, 0x93, 0xb3, 0xb3, 0x73, 0x1f, 0x51, 0x71,
0xf9, 0xd4, 0xee, 0x13, 0x84, 0x3f, 0xba, 0x68,
0xf3, 0xe6, 0xcf, 0xe0, 0x87, 0xdd, 0x17, 0x5e,
0x99, 0x74, 0x6c, 0xba, 0x57, 0xe1, 0xc4, 0x9f,
0x46, 0xbf, 0xdd, 0xae, 0xb6, 0x70, 0x73, 0x04,
0x7b, 0x5c, 0x88, 0x59, 0x7a, 0xbd, 0x8a, 0x00,
0x38, 0x3e, 0xca, 0x71, 0xed, 0x87, 0xf5, 0xea,
0x7e, 0x4a, 0xa7, 0x47, 0x03, 0x81, 0x93, 0x8b,
0xf7, 0x9b, 0x4d, 0x0c, 0x01, 0xc8, 0xe5, 0xdd,
0xcd, 0x66, 0xca, 0x84, 0x15, 0xfe, 0xde, 0xde,
0x01, 0x67, 0xcf, 0xa7, 0x6b, 0x1f, 0xa3, 0x1f,
0xad, 0x81, 0xf4, 0x5d, 0x44, 0x08, 0x42, 0xb4,
0xd9, 0xc1, 0xd7, 0x31, 0x91, 0x8f, 0x8f, 0x5e,
0x1d, 0xe8, 0xe0, 0x53, 0xa8, 0xaf, 0x0e, 0x81,
0x99, 0x32, 0x7f, 0x39, 0x91, 0xdf, 0x2e, 0x9e,
0xdc, 0x2f, 0xd7, 0x37, 0x11, 0x1e, 0xb8, 0xea,
0x97, 0x01, 0xff, 0x32, 0xce, 0xc7, 0x47, 0xd9,
0x79, 0x12, 0x1d, 0xd1, 0x9d, 0x9e, 0x64, 0x49,
0xfe, 0x43, 0xe7, 0x8b, 0x1f, 0xba, 0x09, 0xd0,
0xbb, 0x4d, 0x4c, 0xe1, 0x67, 0x4f, 0x90, 0x70,
0x0f, 0x22, 0xbb, 0x5e, 0x5e, 0x1e, 0x6e, 0x9c,
0x22, 0xbf, 0x02, 0x87, 0x4c, 0x52, 0x97, 0x57,
0x9f, 0x30, 0xf1, 0x22, 0xf9, 0xd5, 0xcf, 0x13,
0x52, 0x39, 0xbd, 0xf9, 0xf3, 0xe6, 0xe1, 0xc5,
0x21, 0xb7, 0xbb, 0xd5, 0xf5, 0xea, 0xfa, 0xcd,
0x6a, 0xfb, 0x1c, 0xf8, 0x39, 0xe9, 0x4e, 0x93,
0xf1, 0x1c, 0xd7, 0xbf, 0x2e, 0x5e, 0xf9, 0xe7,
0xc0, 0xd0, 0xd9, 0x7f, 0x4d, 0x60, 0x3a, 0x49,
0xec, 0xb9, 0xad, 0x5e, 0xff, 0x60, 0xab, 0x57,
0x67, 0x2e, 0xf9, 0xfe, 0xf4, 0xd4, 0x16, 0xcf,
0x0e, 0xc9, 0x52, 0x47, 0x27, 0x46, 0x64, 0xef,
0xde, 0x4f, 0x8c, 0x17, 0x9f, 0x21, 0x9b, 0xd6,
0x08, 0x36, 0x12, 0x63, 0x1d, 0xf9, 0x2b, 0x79,
0xb7, 0xda, 0x27, 0x7f, 0xb9, 0x5b, 0x4e, 0x29,
0x11, 0x61, 0x13, 0xb1, 0xd1, 0x63, 0xf7, 0x7f,
0x3e, 0x4b, 0x0e, 0x2a, 0xc4, 0xaf, 0x67, 0xcf,
0x9a, 0xef, 0x4f, 0x4f, 0x5e, 0x47, 0xe0, 0x7e,
0xf6, 0x06, 0xc0, 0xfa, 0xc9, 0x23, 0xaf, 0xf2,
0xa8, 0x5a, 0x92, 0xbd, 0x7a, 0x7d, 0xe2, 0xba,
0x53, 0x20, 0xf8, 0x95, 0x2f, 0xe2, 0x06, 0x5f,
0x44, 0x9d, 0xfa, 0xee, 0x95, 0xf7, 0xa7, 0x67,
0xc9, 0x89, 0x39, 0x0f, 0xa7, 0xcf, 0x9e, 0x7d,
0x96, 0x1b, 0xbf, 0x7e, 0xdd, 0x1f, 0xff, 0xf6,
0x2d, 0x5f, 0xff, 0xb2, 0xc3, 0x7f, 0xa2, 0x7f,
0xf2, 0xf9, 0xd3, 0x57, 0x0e, 0xff, 0x8c, 0x9f,
0xbf, 0x55, 0xb9, 0x93, 0x9f, 0xb1, 0xe3, 0x77,
0xf8, 0xfc, 0xcb, 0x6e, 0xff, 0x57, 0x3b, 0xed,
0xf8, 0xe8, 0x9f, 0xaa, 0x07, 0x05, 0x8f, 0x8f,
0x7e, 0xfe, 0x28, 0xb3, 0x7e, 0x9d, 0xf4, 0x28,
0xd8, 0x9b, 0xfb, 0x5d, 0xa2, 0x17, 0x2f, 0x3f,
0x3e, 0xfd, 0xf9, 0xe0, 0x80, 0xaf, 0xcb, 0xc1,
0x59, 0x9c, 0x4b, 0x4e, 0x5e, 0x1e, 0x0e, 0xc8,
0x85, 0x24, 0xb6, 0x90, 0x7c, 0xbe, 0x58, 0x1c,
0x1e, 0xcc, 0x66, 0x33, 0x9a, 0x1d, 0x3e, 0x87,
0x07, 0x4a, 0x2e, 0x48, 0xb2, 0xf9, 0x42, 0x2d,
0x1e, 0x1f, 0xcc, 0xb1, 0x63, 0xce, 0x66, 0x2a,
0x9d, 0xf3, 0xdf, 0x90, 0x71, 0xf8, 0xfe, 0x78,
0x93, 0x79, 0x6e, 0x1f, 0xef, 0x62, 0x42, 0xea,
0x94, 0xce, 0x4f, 0x6b, 0x5c, 0x30, 0x17, 0x92,
0xa7, 0x94, 0xa6, 0x5c, 0xa5, 0x8f, 0x52, 0xd3,
0x85, 0x5e, 0x3c, 0x2e, 0xce, 0xe6, 0x29, 0x7e,
0xd7, 0xe9, 0x82, 0x89, 0xc7, 0xc5, 0x85, 0x7c,
0xb2, 0xc8, 0x17, 0x0b, 0x9a, 0x49, 0xdc, 0xfa,
0xb8, 0xc8, 0x66, 0x9f, 0x17, 0x05, 0x63, 0x29,
0xb4, 0x63, 0x9c, 0x7f, 0xcb, 0x22, 0x57, 0x9f};
//CRITICAL_SECTION candado,cc,css;
void mipro(void *parametros);
int hilo=0;
void main(int argc, char **argv)
{
int i;
int f;
if (argc!=3) {
printf ("\nLa forma correcta es %s ip puerto \nEjemplo %s 195.23.41.23 4662\n",argv[0],argv[0]);
exit(0);
}
printf ("Cuantos paquetes envio\n");
scanf("%d",&f);
//f = numero de paquetes a enviar
for (i=0;i
hilo++;
_beginthread( mipro,sizeof(argv),(void *)(char **) argv);
Sleep(10);
}
while(hilo>0)
Sleep(10);
}
void mipro(void *parametros) {
int ip1[4];
struct hostent *hent;
int sock=0;
char ip[16];
// char *ip;
struct sockaddr_in target_ip;
char buf[100000];
int buf_size=100000;
int puerto=80;
int resul;
unsigned int addr;
char tmp[100];
char **cadenita;
WSADATA wd;
buf[0]='\0';
WSAStartup(MAKEWORD(1,1), &wd);
cadenita=parametros;
// printf("--->%s\n",cadenita[0]);
sscanf (cadenita[1], "%d.%d.%d.%d", &ip1[0],&ip1[1],&ip1[2],&ip1[3]);
sscanf (cadenita[2], "%d",&puerto);
sprintf(ip,"%d.%d.%d.%d",ip1[0],ip1[1],ip1[2],ip1[3]);
// printf ("%s\n",tmp);
//printf("ip-->%s\n",ip);
// hent = gethostbyname(ip);
addr = inet_addr(ip);
hent = gethostbyaddr((char *)&addr, 4, AF_INET);
if (hent == NULL) {
printf(" Error hostname erroneo (hostname=\"%s\")\n" , ip);
}
else{
target_ip.sin_family = AF_INET;
//target_ip.sin_addr.s_addr = inet_addr(ip);
target_ip.sin_addr = *(struct in_addr *)hent->h_addr_list[0];
target_ip.sin_port = htons(puerto);
closesocket(sock);
sock=socket(AF_INET,SOCK_STREAM,0);
//sock=socket(AF_INET,SOCK_DGRAM,IPPROTO_TCP);
if (sock
printf("error: no puede conectarse a ese puerto TCP\n");
}
else
{
resul=connect(sock,(struct sockaddr *)&target_ip, sizeof(target_ip));
resul=send(sock,peer0_0,strlen(peer0_0),0);
// printf("enviado %s =%d\n",tmp,resul);
// resul = recv(sock, buf,10,0);
// printf("recibido %d\n",resul);
/* buf[resul-1]='\0';
printf("\nbuf-->%s \nresul=%d",buf,resul);
buf[0]='\0';*/
}
closesocket(sock);
}
printf("Numero de hilos -->%d\n",hilo);
hilo--;
_endthread();
}
Ahora otro programa que lo que hace es estar escuchando en un puerto y capturar los paquetes que les van llegando.
Además va mostrando la velocidad (muy toscamente) a la que recibe los datos, cada vez que se supera la transferencia
máxima se indica.
#include
#include
#include
#include
#include
#include
#include
#include
#pragma comment(lib, "user32.lib")
#pragma comment(lib, "ws2_32.lib")
#define SOCKS4_EXECBYTE 133
#pragma pack(push, 1)
#pragma pack(pop)
#ifndef WIN32
#define CRITICAL_SECTION pthread_t
#endif
int paquetes=0;
int maxima=0;
void contador(void *parametros);
void main(int argc, char *argv[])
{
int x,t,ii;
int s_escucha,s_envia;
char *ix;
char buf[10000];
struct sockaddr_in k,i;
int puerto;
WSADATA wd;
WSAStartup(MAKEWORD(1,1), &wd);
if (argc!=2){
printf ("\nLa forma correcta es %s puerto \nEjemplo %s 4662\n",argv[0],argv[0]);
exit(0);}
sscanf (argv[1], "%d",&puerto);
// abrimos contador
_beginthread( contador, 0, NULL);
x=0;
//Rellenado la estructura
k.sin_family=AF_INET;
k.sin_port=htons(puerto);
k.sin_addr.s_addr=inet_addr("0.0.0.0");
// bzero(&(k.sin_zero),8);
//creamos socket para escuchar
s_escucha=socket(AF_INET,SOCK_STREAM,0);
if (x==-1){
printf("Error .... socket= -1\n");
exit(0);
}
//asociamos el socket
x=bind(s_escucha,(struct sockaddr*)&k,sizeof(k));
if (x==-1){
printf("Error .... bind= -1\n");
exit(0);
}
//ponemos a escuchar
x=listen(s_escucha,10);
if (x==-1){
printf("Error .... listen= -1\n");
exit(0);
}
t=sizeof(i);
printf("Escuchando ...\n");
for(;;){
s_envia=accept(s_escucha,(struct sockaddr*)&i,&t);
if (s_envia==-1){
printf("Error al establecer la conexion con interm\n");
exit(1);
}
/* printf ("=========Conexion aceptada de ==== maxima velocidad alcanzada --> %d ===========\n",maxima);
printf ("Puerto %d \n",ntohs(i.sin_port));
ix=inet_ntoa(i.sin_addr);
printf ("direcion %s \n",ix);
printf ("==================================================================================");
*/
//reciviendo datos
x=recv(s_envia,buf,sizeof(buf),0);
// printf ("\nrecibido %d\n",x);
paquetes++;
}
}
void contador(void *parametros){
int resul=0;
WSADATA wd;
WSAStartup(MAKEWORD(1,1), &wd);
for(;;){
Sleep(1000);
resul=paquetes*1400;
if (resul!=0)
printf ("%d bytes por segundo\n",resul);
if (resul>maxima) {
maxima=resul;
printf ("M A X I M A ---> %d bytes por segundo\n",maxima);
}
paquetes=0;
}
_endthread();
}
Funcionamiento: una persona ejecuta en su pc el segundo programa, esta persona le indica a un numero de personas su
ip y el puerto en el que esta escuchando el programa que ha ejecutado, y este grupo de personas lanza el primer programa
poniendo indicando a la pregunta el numero de paquetes que quiere enviar (cada paquete es de 1400 bytes y envía 100
paquetes por segundo 140000 bytes), para que este constantemente enviando datos.
En resumen, no echarle mucha cuenta a los programas porque no están puesto bonitos, sino hechos rápidos y con prisas. No
veo razón alguna por la que no funcionen. Si bueno ya lo pondré luego compilado si alguien le hace ilusión. Esto solo es
una idea.