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
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