Calificación:
  • 6 voto(s) - 5 Media
  • 1
  • 2
  • 3
  • 4
  • 5
A nadie le importa una mierda, pero... v13
(12-30-2011, 11:52 AM)kappei escribió:
(12-27-2011, 05:01 PM)Yumichan escribió:
(12-27-2011, 10:40 AM)kappei escribió: ANLIU(puta)M, pero estaré sin conexión a Internet muy probablemente hasta enero. Mientras tanto a tirar del cíber del barrio...

Gracias mamá. Palmadas

Seguramente ya lo tengas en cuenta, pero Opera USB es tu amigo.

Y el "wget" para win32... asi llegaron a casa el VS2008, ICL y otros en su día (desde la web oficial).

No... no entiendo nada... Huh

Yo tampoco. No creo que en tu casa uses el Opera USB.

(12-29-2011, 04:10 PM)chachibukai escribió: ¿Crear procesos hijo en linux? Visto. ¿En windows? Ni idea, a buscar.
¿Usar sockets en linux? Visto. ¿En windows? Ni idea, a buscar.
¿Comunicación entre procesos en linux? Visto. ¿En windows? Ni idea, a buscar.

Por aquí tengo el primer programa con sockets y multihilo que hice windows. Es una guarrada, pero fácil de entender. Échale un vistazo si quieres. Hay que linkearle al proyecto la librería libws2_32.a si usas un IDE basado en GCC o la ws2_32.lib si usas Visual Studio.

Spoiler: mostrar
Código:
/*By Reaper*/
#include <winsock.h>
#include <windows.h>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <conio2.h>
#include <process.h>
#include <ctype.h>

int conectar(unsigned short puerto, char* ip);
void desconectar(void);
void chat(void);
void hilouno(void *param);
void hilodos(void *param);

SOCKET so;
char sw, telnet='0';

int main(int argc, char *argv[])
{
    textcolor(LIGHTGREEN);
    if(argc==3||argc==4)
    {
        if(argc==4&&strcmp(argv[3], "--modo-telnet")!=0)
        printf("Opci\242n no reconocida [%s]\n", argv[3]);
        else
        {
            if(argc==4&&strcmp(argv[3], "--modo-telnet")==0)
            telnet='1';
            printf("Conectando...\n");
            if(conectar(atoi(argv[2]), argv[1])!=0)
            printf("Error de conexi\242n");
            else
            {
                printf("Conexi\242n establecida!\n");
                chat();
                printf("[Fin de la transmisi\242n]");
            }
        }
    }
    else printf("Modo de uso: conectar.exe [IP] [puerto] --modo-telnet (opcional)\nTecla ESC: Desconectar\n");
}

int conectar(unsigned short puerto, char* ip)
{
    WSADATA wsadata;
    SOCKADDR_IN destino;
    WSAStartup(0x0202, &wsadata);
    if(wsadata.wVersion!=0x0202) WSACleanup();
    destino.sin_family=AF_INET;
    destino.sin_port=htons(puerto);
    destino.sin_addr.s_addr=inet_addr(ip);
    so=socket(AF_INET, SOCK_STREAM, IPPROTO_TCP);
    return connect(so, (SOCKADDR *)&destino, sizeof(destino));
}

void desconectar(void)
{
    if(so) closesocket(so);
    WSACleanup();
}

void chat(void)
{
    HANDLE handle[2];
    int i=0;
    handle[0]=(HANDLE) _beginthread(hilouno, 0, &i);
    i++;
    handle[1]=(HANDLE) _beginthread(hilodos, 0, &i);
    WaitForMultipleObjects(2, handle, FALSE, INFINITE);
}

void hilouno(void *param)
{
    char caracter=0;
    while(sw==0)
    {
        caracter=_getch();
        if(caracter!=27&&caracter!=13) if(telnet=='0') putchar(caracter);
        if(caracter==13)
        {
            caracter=10;
            if(telnet=='0') putchar('\n');
        }
        if(caracter==27)
        {
            desconectar();
            sw='1';
            _endthread();
        }
        else
        if(caracter!=0)
        send(so, &caracter, 1, 0);
    }
    desconectar();
    sw='1';
    _endthread();
}

void hilodos(void *param)
{
    char caracter2;
    int err=0;
    while(sw==0)
    {
        err=recv(so, &caracter2, 1, 0);
        if(err==1)
        putchar(caracter2);
        if(err==-1||err==0)
        {
            desconectar();
            sw='1';
            _endthread();
        }
    }
    desconectar();
    sw='1';
    _endthread();
}
[Imagen: z4kSKUd.png]


Mensajes en este tema
RE: A nadie le importa una mierda, pero... v13 - por Reaper45 - 12-30-2011, 01:34 PM
Imágenes raras - por Chachibukai - 01-30-2013, 09:16 PM
¡Loros, loros, loros! - por Chachibukai - 05-31-2013, 11:06 PM
RE: ¡Loros, loros, loros! - por Unmeikuro - 05-31-2013, 11:12 PM
Loros!!! - por Yumichan - 05-31-2013, 11:44 PM

Salto de foro:


Usuarios navegando en este tema: 63 invitado(s)