Newsgroup: it.comp.lang.c++
Titolo: Programmazione socket (libri sul c++)

Salve,
sto studiando il c++ da diverso tempo e sarei interessato ad indirizzare la
mia attenzione verso la programmazione socket in Windows, ma purtroppo non
trovo un libro decente che tratti questo argomento.
    Sarei felice se qualcuno di voi mi inviasse qualche titolo di un buon
manuale, magari aggiornato, per soddisfare la mia sete di cultura.
Anticipatamente ringrazio
              Lorenzo
              E-Mail: 
ita...@technologist.com


ciao. per cominciare potresti dare un'occhiata alla FAQ: 
http://www.cyberport.com/~tangent/programming/winsock/
di cui ti consiglio la versione zippata:
http://www.cyberport.com/~tangent/programming/winsock/wskfaq.zip
che in realtà è un documento ben strutturato, pieno di ottimi consigli e
di tutorial. forse un po' troppo duro con MFC, ma comunque ottimo.
Per iniziare, e per reference, a me è servito.
per dirti, ecco l'indice:
(ciao! )
Contents
Section 0 - Introduction
0.1 - The Original Introduction
0.2 - A Bit About the Maintainer
0.3 - Legal Stuff
0.4 - Mirrors
0.5 - What if your question is not in the FAQ?
0.6 - Language Bias
0.7 - Acknowledgements
Section 1 - General Winsock Information
1.1 - What is Winsock?
1.2 - What is the latest version?
1.3 - When is the next rev of the specification?
1.4 - Where can I get a Winsock implementation?
1.5 - Why isn't there just one Winsock DLL? Do I need a network stack to
use it?
1.6 - Is there a version of Winsock for { OS/2, DOS, Unix, etc. }?
1.7 - Can Winsock speak { DECNet, IPX/SPX, etc. }?
1.8 - What does Winsock 2 have that Winsock 1.1 doesn't?
1.9 - Where can I get Winsock 2?
Section 2 - Issues for New Winsock Programmers
2.1 - Are there any sample apps on the Net?
2.2 - How do I speak { HTTP, POP3, SMTP, FTP, Telnet, NNTP, etc. } with
Winsock?
2.3 - How do I get my IP address from within a Winsock program?
2.4 - What kind of socket should I use?
2.5 - Do I need to initialize the WSAData structure before calling
WSAStartup?
2.6 - If I write a Winsock program, will I be able to communicate with a
Unix Sockets program?
2.7 - Can I use Winsock with { Delphi, Visual Basic, Visual COBOL, etc.
}?
2.8 - How do I detect when my TCP connection is closed?
2.9 - Are there any tools available for debugging Winsock programs?
2.10 - How do I get a readable error message from a Winsock error
number?
2.11 - Winsock keeps returning the error WSAEWOULDBLOCK. What's wrong
with my program?
2.12 - What's the proper way to close a TCP socket?
2.13 - What can you tell me about MFC's CSocket and CAsyncSocket?
2.14 - How can I change the timeout for a Winsock function?
2.15 - How do I send a broadcast packet?
2.16 - How do I detect an abnormal network disconnect?
Section 3 - Advanced Winsock Issues
3.1 - How can I open a raw data socket?
3.2 - How can I "ping" another machine with Winsock?
3.3 - How do I share a socket between two processes?
3.4 - How can I get access to the {route, ARP, interface, etc.} table?
3.5 - How can I get the local username?
3.6 - Is it possible to create sockets that map to a DLL rather than an
application?
3.7 - I'm having trouble porting a BSD sockets program to Winsock. Help!
3.8 - How do I get the MAC (a.k.a. hardware) address of the local
Ethernet adapter?
3.9 - In a multithreaded application, can more than one thread access a
single socket?
3.10 - If two threads in an application call recv() on a socket, will
they each get the same data?
3.11 - Is there any way for two threads to be notified when something
happens on a socket?
3.12 - How do I detect if the modem is connected?
3.13 - How can I capture packets on a LAN with Winsock?
3.14 - How can I change the IP or TCP header of a packet?
3.15 - When should I turn off the Nagle algorithm?
3.16 - How many simultaneous sockets can I have open with Winsock?
3.17 - Can I change FD_SETSIZE to make select() wait on more than 64
sockets?
3.18 - How do I make Winsock use a specific network interface to make a
connection?
3.19 - How do I write my program to work through a firewall?
3.20 - Is it a bad idea to bind() to a particular port in a client
program?
Section 4 - Resources 
4.1 - Winsock Libraries and Controls
4.2 - Sample Winsock Applications and Tutorials
4.3 - Web Pages
4.4 - Winsock SDKs and Specifications
4.5 - Winsock Debugging Tools
4.6 - Network Suite Vendors
4.7 - Miscellaneous
Section 5 - Examples 
Example 1 - Getting the Local IP Address
Example 2 - Pinging a Host Using Microsoft's ICMP.DLL
Example 3 - Pinging a Host Using Raw Sockets
Example 4 - How to Get the Local User Name
Example 5 - How to Pass a Socket Handle in Win32
Example 6 - How to Get the MAC (a.k.a. "hardware") Address, NetBIOS
method
Example 7 - How to Get the MAC (a.k.a. "hardware") Address, RPC method
Example 8 - Getting the Network Interface List
Example 9 - Finding the Maximum Number of Open Sockets
Example 10 - Several Basic Winsock Programs
Section 6 - Tutorials 
Tutorial 1 - What Kind of Socket Should I Use?
Tutorial 2 - Winsock for the Impatient
Tutorial 3 - Winsock's Compatibility With BSD Sockets
Tutorial 4 - How to Use TCP Effectively
Tutorial 5 - Debugging TCP
Tutorial 6 - The Lame List
Section 7 - Reviews 
Books
Win32 Network Programming by Ralph Davis
WinSock 2.0 by Lewis Napper
Windows Sockets Network Programming by Bob Quinn and Dave Shute
TCP/IP Illustrated, volume 1 by W. Richard Stevens
Unix Network Programming, volume 1 by W. Richard Stevens
Software
Nothing yet! 
Section 8 - Glossary 
ciao!