BorderGame
[C++] Guida alle devsock - Versione stampabile

+- BorderGame (https://www.bordergame.it)
+-- Forum: Programmazione (/Forum-Programmazione--158)
+--- Forum: Programmazione (/Forum-Programmazione)
+---- Forum: C, C# & C++ (/Forum-C-C-C)
+---- Discussione: [C++] Guida alle devsock (/Thread-C-Guida-alle-devsock)



[C++] Guida alle devsock - Ð3V!L - 13-11-2012 01:59 AM

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


RE: [C++] Guida alle devsock - scl - 13-11-2012 02:02 AM

Non conosco il C++, a scuola sto studiando il C; Hai fatto comunque un'ottima guida +1 meritato.


RE: [C++] Guida alle devsock - Team_ExE - 13-11-2012 11:22 AM

ti amo <3


RE: [C++] Guida alle devsock - Ð3V!L - 13-11-2012 03:50 PM

grazie, presto rilascerò una seconda versione che stamperà a video gli errori riscontrati, in caso di problemi Wink