Visualizzazione dei risultati da 1 a 4 su 4
  1. #1

    Help Socket !!!

    // CLIENT SERVER.cpp : Defines the entry point for the console application.
    //

    #include "stdafx.h"
    #include "stdio.h"
    #include <windows.h>
    #include <winsock.h>

    int main(int argc, char* argv[])
    {
    int port;
    port=23;
    char *host;
    SOCKET sckListen;
    SOCKET sckConnect;
    struct sockaddr_in sckAddress;

    /*CLIENT
    memset(&sckAddress, 0, sizeof(sockaddr_in));
    sckConnect = socket(PF_INET, SOCK_STREAM, 0);
    sckAddress.sin_port = htons(port);
    sckAddress.sin_family = AF_INET;
    sckAddress.sin_addr.s_addr = inet_addr("192.168.1.9");



    if(connect(sckConnect, (struct sockaddr *)&sckAddress, sizeof(sckAddress)) == SOCKET_ERROR)
    {
    printf("Errore!!");
    }
    else
    {
    printf("***Successfully Connected***\r\n");

    }

    */
    //SERVER

    sckListen = socket(PF_INET, SOCK_STREAM, 0);

    sckAddress.sin_port = htons(port);
    sckAddress.sin_family= AF_INET;
    sckAddress.sin_addr.s_addr = INADDR_ANY;

    bind(sckListen, (struct sockaddr *)&sckAddress, sizeof(sckAddress));

    if(sckListen != INVALID_SOCKET)
    {
    printf("***Waiting for client***\r\n");

    }
    else
    printf("Error!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!");

    return 0;
    }

    SCUSATE MA DOVE STO SBAGLIANDO??

    CIAO GRAZIE
    http://www.navimel.com

    La disumanità del computer sta nel fatto che, una volta programmato(da me) e messo in funzione, FA QUEL CAZZO CHE VUOLE!!!

  2. #2
    TESTATO!!!
    codice:
    // CLIENT
    
    #include <stdio.h>
    #include <windows.h>
    #include <winsock.h>
    #include <process.h>
    
    SOCKET sock=NULL;
    
    SOCKADDR addr;
    
    void MsgProc();
    
    void main()
    {
        WSADATA dat;
        WORD ver=MAKEWORD(1,1);
    
        int res;
        SOCKADDR_IN addr_in;
        addr_in.sin_family=AF_INET;
        addr_in.sin_port=100;
        addr_in.sin_addr.S_un.S_un_b.s_b1=127;
        addr_in.sin_addr.S_un.S_un_b.s_b2=0;
        addr_in.sin_addr.S_un.S_un_b.s_b3=0;
        addr_in.sin_addr.S_un.S_un_b.s_b4=1;
    
        memcpy(&addr,&addr_in,sizeof(SOCKADDR_IN));
    
    
        //auto-start server
        system("start .\\debug\\srvr.exe");
    
       printf("Remember, 0s are good\n");
    
        printf("WSAStartup: %d. Version %d\n",(res=WSAStartup(ver,&dat)),ver);
    
        if(res!=0)
    	return;
    
        sock=socket(PF_INET,SOCK_STREAM,0);
    
        printf("Connect: %d\n",(res=connect(sock,&addr,sizeof(addr))));
    
        if(sock==NULL||res!=0)
    	return;
    
        MsgProc();
    
        WSACleanup();
    }
    
    
    void MsgProc()
    {
        char str[100]="";
        int res;
    
        while(stricmp(str,"exit")!=0){
    	printf("String to send: ");
    	gets(str);
    
    	send(sock,str,100,0);
    
            for(int i=0;(res=recv(sock,str,100,0))==SOCKET_ERROR&&i<50;i++)
    	    Sleep(100);
    
            if(res==0||res==WSAECONNRESET||res==WSAECONNABORTED)
            { 
    	    printf("Server terminated connection\n");
    	    break;
    	}
    
    
        }
    
        closesocket(sock);
    
    }
    codice:
    // SERVER
    
    #include <stdio.h>
    #include <windows.h>
    #include <winsock.h>
    
    SOCKET sock;
    
    SOCKADDR addr;
    
    void MsgProc();
    
    void main()
    {
        SOCKADDR_IN addr_in;
        addr_in.sin_family=AF_INET;
        addr_in.sin_port=100;
        addr_in.sin_addr.S_un.S_un_b.s_b1=127;
        addr_in.sin_addr.S_un.S_un_b.s_b2=0;
        addr_in.sin_addr.S_un.S_un_b.s_b3=0;
        addr_in.sin_addr.S_un.S_un_b.s_b4=1;
    
        memcpy(&addr,&addr_in,sizeof(SOCKADDR_IN));
    
        SOCKET temp=NULL;
    
        WSADATA dat;
        WORD ver=MAKEWORD(1,1);
        int res;
    
        printf("WSAStartup: %d Version %d\n",(res=WSAStartup(ver,&dat)),ver);
    
        if(res!=0)
    	return;
    
        sock=socket(PF_INET,SOCK_STREAM,0);
    
        printf("Binding socket: %d\n",bind(sock,&addr,sizeof(addr)));
        printf("Listen mode: %d\n",listen(sock,5));
    
        while((temp=accept(sock,&addr,NULL))==SOCKET_ERROR);
    
        sock=temp;
    
        if(sock)
            MsgProc();
    
        WSACleanup();
    }
    
    
    void MsgProc()
    {
        char buf[100];
        int res=1;
        while((res=recv(sock,buf,100,0))!=SOCKET_ERROR)
        {
    	if(res==0||res==WSAECONNRESET||res==WSAECONNABORTED)
    	{
    	    printf("Client terminated connection\n");
    	     break;
    	}
    
    	_flushall();//probably not needed
    
    	printf("Recieved string: %s\n",buf);
    
    	send(sock,buf,100,0);
        }
    
        closesocket(sock);
    }
    N.B. In entrambi i file (Client.cpp e Server.cpp)
    devi linkare la libreria wsock32.lib

    Se utilizzi Visual C++ 6.0:

    apri Menù -> Project\Setting\Link

    nella casella "Object/Library Modules"
    aggiungi (alla fine delle librerie linkate) wsock32.lib

    ...

    compila e buon divertimento.

    P.S. lanciando il Client, verrà avviato anche il Server...
    fai attenzione alla riga di codice evidenziata in rosso
    (se il Client non trova il Server) devi modificarla
    inserendo il giusto indirizzo PATCH in cui si trova il
    file Server srvr.exe
    ...Terrible warlords, good warlords, and an english song

  3. #3

    grazie

    grazie, alla prossima
    http://www.navimel.com

    La disumanità del computer sta nel fatto che, una volta programmato(da me) e messo in funzione, FA QUEL CAZZO CHE VUOLE!!!

  4. #4
    ho provato a compilare il cliente su dev-cpp (windows) e mi i seguenti errori. Come mai??


    beta.cpp:6: warning: converting to non-pointer type `SOCKET' from NULL
    beta.cpp:13: error: `main' must return `int'

    beta.cpp: In function `int main(...)':
    beta.cpp:37: error: return-statement with no value, in function returning 'int'
    beta.cpp:43: warning: NULL used in arithmetic
    beta.cpp:44: error: return-statement with no value, in function returning 'int'

    make.exe: *** [beta.o] Error 1

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.