//para comprobar comunicación // c:\telnet 192.168.1.34 8888 //incluir librerias en el proiecto winsock y ws2_32 #include <windows.h> #include <winsock2.h> #include <stdio.h> #include <stdlib.h> #include <string.h> //#include <time.h> algunas pruebas del libro de protocolos interet //constantes del programa------------------------------------------------------- #define MAX_CLIENT 10 /* número máximo de clientes */ #define PUERTO_SERVIDOR 8888 /* puerto que "escucha" el programa */ //------------------------------------------------------------------------------ //esto k aun no se k es ... SOCKET sock_server; SOCKET sock_client[MAX_CLIENT]; int c=0; int main() { //iniciando la libreria de socks---------------------------------------------- WSADATA wsadat; WORD version = MAKEWORD(1,1); /* inicializamos el entorno de windows sockets */ if (WSAStartup( version, &wsadat)) { printf("Error inicializando windows sockets\n"); return 1; }
//COPIA DEL CODIGO DEL LIBRO PROTOCOLOS DE INTERNET //empezamos por las variables que utilizara el programa int s,c,n; struct sockaddr_in sa; char buffer[80]="jejejeje hola socketworld :p\0";; time_t t; if((s = socket(PF_INET,SOCK_STREAM,0))<0) { printf("Error en SOCKET\n"); system("pause"); exit(1); } printf("Tenemos socket c = %d\n",s); sa.sin_family = AF_INET; sa.sin_port = htons(PUERTO_SERVIDOR); sa.sin_addr.s_addr = htonl(INADDR_ANY);//cualquier posible cliente if(bind(s, (struct sockaddr*)&sa, sizeof(sa)) <0) { printf("Error en BIND\n"); system("pause"); exit(1); } //marcando el socket if(listen(s,5)<0) { printf("Error en LISTEN\n"); system("pause"); exit(1); } //preparando el envio do{ if((c=accept(s,NULL,0))<0) { printf("Error en ACCEPT\n"); system("pause"); exit(1); } //si no ha avido error enviamos
n=strlen(buffer); //if(send(s,DATA,strlen(DATA),0)<0) /*Enviamos datos /* //eeps k akesta es la k funciona!!!! if(send(c,buffer,strlen(buffer),0)<0) { printf("Error en SEND\n"); system("pause"); close(c); closesocket(sock_server); exit(1); } */ do{ char cadena[5] = "\0\n"; int longitud=0; gets(buffer); longitud = strlen(buffer); printf("mandando %d letras\n",longitud);
fflush(stdin); //algunas pruebas //t = time(NULL); //n=sprintf(buffer,"\n%s\n",ctime(&t)); send(c,buffer,strlen(buffer),0); send(c,cadena,strlen(cadena),0); //send(c,intro,strlen(intro),0); }while(buffer!=0); //no creo k aga falt tanto cierre closesocket(c);//lo cerramos todo closesocket(sock_server); //todo XD }while(1);
//saliendo de la libreria de socks-------------------------------------------- closesocket(sock_server); WSACleanup() ;
system("PAUSE"); return 0; }
|