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");
}
