BorderGame

Versione completa: [C++] Guida alle devsock
Al momento stai visualizzando i contenuti in una versione ridotta. Visualizza la versione completa e formattata.
Salve a tutti, apro questa discussione per spiegarvi cos'è devsock, come includerla e come usare le funzioni contenute..

bene, iniziamo subito allora..

Cos'è devsock e a cosa serve?
devsock è un header sviluppato da me, per semplificare l'utilizzo delle winsock in c++ ..

Come si include devsock?
includere devsock è facilissimo, basterà scaricare devsock.h che rilascerò in fondo alla guida e seguire la breve guida che ho fatto per voi:

La guida è valida per chi usa VS 2012 (Visual studio 2012)..
1. cliccare col tasto destro sulla voce "File di intestazione" (nell'esplora soluzioni)
2. aggiungi -> elemento esistente -> selezionare il file devsock.h
3. andare nel vostro progetto e scrivere #include "devsock.h"

Quali e come si usano le funzioni contenute da devsock?
Le funzioni contenute da devsock (per il momento) sono soltanto 2..
wsa_startup(int Version_a,int Version_b) e sock_addr(char ip[20],int af,int port)

per usare wsa_startup basterà scrivere nel vostro main wsa_startup(v_a,v_b); ovviamente per v_a e v_b io intendo la vostra versione.. nel mio caso è 2 e 1 quindi io scriverò wsa_startup(2,1);

per usare sock_addr invece bisogna andare nel main e scrivere sock_addr("ip",af,porta); nel mio caso utilizzo l'ip locale, AF_INET e la porta 4005 e quindi scriverò sock_addr("127.0.0.1",AF_INET,4005);

Esempio (source):

#include <iostream>
#include "devsock.h"

int main(void)
{
int result = wsa_startup(2,1);
if (result != 0){ std::cout << "error found in wsa_startup" << std::endl; getchar(); exit(0); }

SOCKET Listen = socket(AF_INET,SOCK_STREAM,0);
SOCKET Connect = socket(AF_INET, SOCK_STREAM, 0);

SOCKADDR_IN Server = sock_addr("127.0.0.1",AF_INET,4005);

int size = sizeof(Server);

bind(Listen, (SOCKADDR*)&Server, size);

std::cout << "server started successfully" << std::endl;

listen(Listen,SOMAXCONN);

for(;; )
{
if(Connect = accept(Listen, (SOCKADDR*)&Server, &size))
{
std::cout << "connection accepted from: " << inet_ntoa(Server.sin_addr) << std::endl;
}
}

WSACleanup();
}

download devsock.h : http://www.mediafire.com/?kldr83y0xdp76jt
Non conosco il C++, a scuola sto studiando il C; Hai fatto comunque un'ottima guida +1 meritato.
ti amo <3
grazie, presto rilascerò una seconda versione che stamperà a video gli errori riscontrati, in caso di problemi Wink
URL di riferimento