NorbiX Client v1.0

C & C++ , problemi, richieste e progetti.

Moderators: Bit, ScorpionIT

NorbiX Client v1.0

Postby NorbiX on Sat Oct 21, 2006 3:51 pm

ecco una semplice chat in C, che si può usare con un qualsiasi server magari con NetCat, manca la funzione che risolve i DNS in indirizzi IP, per il resto è O.K.

da compilare con Dev C++ includendo nel progetto la libreria delle socket (ditemi se proprio non riuscite a farlo)

Code: Select all
#include <stdio.h>
#include <winsock.h>
#include <windows.h>
#include <conio.h>

SOCKET m_socket;
int wait = 0;

DWORD ricezione (LPDWORD lpdwParam)
{
     char ricezione[5000];
     while(1)
     {
          recv(m_socket, ricezione, 32, 0);
          whilecicle:
          if( wait == 1 )
          {
              Sleep(1);
              goto whilecicle;
          }   
          printf("%s",ricezione);
          Sleep(1);
         
     }   
}

int main()
{
     char indirizzo[500];
     int porta;
     SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),12);
     printf("\n** NorbiX Client v1.0 **");
     SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),10);
     printf("\n\nIndirizzo IP: ");
     fgets(indirizzo,500,stdin);
     printf("\nPorta: ");
     scanf("%d",&porta);
     
     WSADATA wsaData;
     int iResult = WSAStartup(MAKEWORD(2,2), &wsaData);
     if(iResult != NO_ERROR) printf("\nErrore WSAStartup");
     
     //SOCKET m_socket;
     m_socket = socket(AF_INET, SOCK_STREAM, IPPROTO_TCP);
     if(m_socket == INVALID_SOCKET)
     {
          printf("Errore socket");
          WSACleanup();     
     }
     
     // CLIENT
     sockaddr_in clientService;
     clientService.sin_family = AF_INET;
     clientService.sin_addr.s_addr = inet_addr (indirizzo);
     clientService.sin_port = htons (porta);
     // inizio connessione
     if(     connect(m_socket, (SOCKADDR*) &clientService, sizeof(clientService)) == SOCKET_ERROR     )
     {
          printf("\nConnessione fallita\n");
          WSACleanup();
          system("PAUSE");
          exit(1);
         
     }
     
     else printf("\nConnesso!\n\n");

     DWORD dwThreadId, dwThrdParam = 1;
     HANDLE thread2 = CreateThread(NULL, 0,(LPTHREAD_START_ROUTINE) ricezione, &dwThrdParam, 0, &dwThreadId);
     
     char tx[5000];
     while(1)
     {
          if(kbhit())
          {
               wait = 1;
               fgets(tx, 5000, stdin);
               send(m_socket, tx, strlen(tx), 0);
               wait = 0;       
          }
          Sleep(1);
     }         
     printf("\nConnessione interrotta dal server\n");
     system("PAUSE");
}   
User avatar
NorbiX
Array[]
 
Posts: 722
Joined: Fri Jul 14, 2006 11:14 am
Location: Inside the N.A.K.

NorbiX Client v1.0

Sponsor

Sponsor


Return to C/C++

Who is online

Users browsing this forum: No registered users and 1 guest