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

    [C#] Problema connessione socket a C++

    ciao!!
    ho un problema di comunicazione tra un socket-server fatto in VC++ e un client fatto in C#.
    scrivo qua perchè penso che il problema sia più client
    molto banali entrambi.
    questo il server:
    codice:
    UINT Server::initConnection() {
    	cout << "SERVER STARTED. PRESS ENTER EXIT" << endl;
    	WSADATA wsaData;
        sockaddr_in local;
    	sockaddr_in from;
    	int wsaret = WSAStartup(0x101, &wsaData);
    	int fromlen = sizeof(from);
    
    	if(wsaret != 0)
        {
            return 0;
        }
    
        local.sin_family = AF_INET; // ADDRESS FAMILY
        local.sin_addr.s_addr = INADDR_ANY; // WILD CARD IP ADDRESS
        local.sin_port = htons((u_short) 20248); // PORT
        server = socket(AF_INET, SOCK_STREAM, 0);
    
        if (server == INVALID_SOCKET)
    	{
            return 0;
        }
    
        if (bind(server, (sockaddr*) & local, sizeof (local)) != 0)
    	{
            return 0;
        }
    
        if (listen(server, 10) != 0)
    	{
            return 0;
        }
    
        while(true)
        {
            char temp[512];
            inAscolto = accept(server, (struct sockaddr*) &from, &fromlen);
            sprintf_s(temp, "YOUR IP IS:  %s", inet_ntoa(from.sin_addr));
            send(inAscolto, temp, strlen(temp), 0);
            cout << "CONNECTION FROM " << inet_ntoa(from.sin_addr) << endl;
        }
    
    }
    questo il client:
    codice:
            public void socketConnection()
            {
                Socket socketClient = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);
                socketClient.Connect("localhost", 20248);
            }
    in pratica, se mi connetto al server tramite telnet ricevo il messaggio, e quindi posso supporre che funzioni.
    mentre se mi connetto in C# nn ricevo nulla e il programma esce subito senza errori.
    secondo voi dove sto sbagliando???

  2. #2
    come immaginavo il problema era nel client:
    codice:
            public void socketConnection()
            {
                Socket socketClient = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);
                socketClient.Connect("127.0.0.1", 20248);
                byte[] receiveBtyes = new byte[512];
                int totBytesReceived = socketClient.Receive(receiveBtyes);
                Console.WriteLine(Encoding.ASCII.GetString(receiveBtyes), 0, totBytesReceived);
            }
    l'unica cosa che ancora nn capisco è perchè la connessione si chiude.
    sul server nn ho implementato nulla per chiudere la connessione fino a che nn viene premuto enter!
    qualcuno sa dirmi qualcosa al riguardo??

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.