[FONT=Courier New][SIZE=4][COLOR=#008000][FONT=Courier New][SIZE=4][COLOR=#008000][FONT=Courier New][SIZE=4][COLOR=#008000]
// WinSockets.cpp : Definiert den Einstiegspunkt für die Konsolenanwendung.
//
[/COLOR][/SIZE][/FONT][/COLOR][/SIZE][/FONT][/COLOR][/SIZE][/FONT][FONT=Courier New][SIZE=4][FONT=Courier New][SIZE=4][/SIZE][/FONT][/SIZE][/FONT][FONT=Courier New][SIZE=4][COLOR=#0000ff][FONT=Courier New][SIZE=4][COLOR=#0000ff][FONT=Courier New][SIZE=4][COLOR=#0000ff]#include[/COLOR][/SIZE][/FONT][/COLOR][/SIZE][/FONT][/COLOR][/SIZE][/FONT][FONT=Courier New][SIZE=4][FONT=Courier New][SIZE=4] [/SIZE][/FONT][/SIZE][/FONT][FONT=Courier New][SIZE=4][COLOR=#a31515][FONT=Courier New][SIZE=4][COLOR=#a31515][FONT=Courier New][SIZE=4][COLOR=#a31515]"stdafx.h"
[/COLOR][/SIZE][/FONT][/COLOR][/SIZE][/FONT][/COLOR][/SIZE][/FONT][FONT=Courier New][SIZE=4][COLOR=#0000ff][FONT=Courier New][SIZE=4][COLOR=#0000ff][FONT=Courier New][SIZE=4][COLOR=#0000ff]#include[/COLOR][/SIZE][/FONT][/COLOR][/SIZE][/FONT][/COLOR][/SIZE][/FONT][FONT=Courier New][SIZE=4][FONT=Courier New][SIZE=4] [/SIZE][/FONT][/SIZE][/FONT][FONT=Courier New][SIZE=4][COLOR=#a31515][FONT=Courier New][SIZE=4][COLOR=#a31515][FONT=Courier New][SIZE=4][COLOR=#a31515]"SockServer.h"
[/COLOR][/SIZE][/FONT][/COLOR][/SIZE][/FONT][/COLOR][/SIZE][/FONT][FONT=Courier New][SIZE=4][FONT=Courier New][SIZE=4][/SIZE][/FONT][/SIZE][/FONT][FONT=Courier New][SIZE=4][COLOR=#0000ff][FONT=Courier New][SIZE=4][COLOR=#0000ff][FONT=Courier New][SIZE=4][COLOR=#0000ff]#ifdef[/COLOR][/SIZE][/FONT][/COLOR][/SIZE][/FONT][/COLOR][/SIZE][/FONT][FONT=Courier New][SIZE=4][FONT=Courier New][SIZE=4] _DEBUG
[/SIZE][/FONT][/SIZE][/FONT][FONT=Courier New][SIZE=4][COLOR=#0000ff][FONT=Courier New][SIZE=4][COLOR=#0000ff][FONT=Courier New][SIZE=4][COLOR=#0000ff]#define[/COLOR][/SIZE][/FONT][/COLOR][/SIZE][/FONT][/COLOR][/SIZE][/FONT][FONT=Courier New][SIZE=4][FONT=Courier New][SIZE=4] [/SIZE][/FONT][/SIZE][/FONT][FONT=Courier New][SIZE=4][COLOR=#0000ff][FONT=Courier New][SIZE=4][COLOR=#0000ff][FONT=Courier New][SIZE=4][COLOR=#0000ff]new[/COLOR][/SIZE][/FONT][/COLOR][/SIZE][/FONT][/COLOR][/SIZE][/FONT][FONT=Courier New][SIZE=4][FONT=Courier New][SIZE=4] DEBUG_NEW
[/SIZE][/FONT][/SIZE][/FONT][FONT=Courier New][SIZE=4][COLOR=#0000ff][FONT=Courier New][SIZE=4][COLOR=#0000ff][FONT=Courier New][SIZE=4][COLOR=#0000ff]#endif
[/COLOR][/SIZE][/FONT][/COLOR][/SIZE][/FONT][/COLOR][/SIZE][/FONT][FONT=Courier New][SIZE=4][FONT=Courier New][SIZE=4]
[/SIZE][/FONT][/SIZE][/FONT][FONT=Courier New][SIZE=4][COLOR=#008000][FONT=Courier New][SIZE=4][COLOR=#008000][FONT=Courier New][SIZE=4][COLOR=#008000]// Das einzige Anwendungsobjekt
[/COLOR][/SIZE][/FONT][/COLOR][/SIZE][/FONT][/COLOR][/SIZE][/FONT][FONT=Courier New][SIZE=4][FONT=Courier New][SIZE=4]CWinApp theApp;
[/SIZE][/FONT][/SIZE][/FONT][FONT=Courier New][SIZE=4][COLOR=#0000ff][FONT=Courier New][SIZE=4][COLOR=#0000ff][FONT=Courier New][SIZE=4][COLOR=#0000ff]using[/COLOR][/SIZE][/FONT][/COLOR][/SIZE][/FONT][/COLOR][/SIZE][/FONT][FONT=Courier New][SIZE=4][FONT=Courier New][SIZE=4] [/SIZE][/FONT][/SIZE][/FONT][FONT=Courier New][SIZE=4][COLOR=#0000ff][FONT=Courier New][SIZE=4][COLOR=#0000ff][FONT=Courier New][SIZE=4][COLOR=#0000ff]namespace[/COLOR][/SIZE][/FONT][/COLOR][/SIZE][/FONT][/COLOR][/SIZE][/FONT][FONT=Courier New][SIZE=4][FONT=Courier New][SIZE=4] std;
[/SIZE][/FONT][/SIZE][/FONT][FONT=Courier New][SIZE=4][COLOR=#0000ff][FONT=Courier New][SIZE=4][COLOR=#0000ff][FONT=Courier New][SIZE=4][COLOR=#0000ff]int[/COLOR][/SIZE][/FONT][/COLOR][/SIZE][/FONT][/COLOR][/SIZE][/FONT][FONT=Courier New][SIZE=4][FONT=Courier New][SIZE=4] _tmain([/SIZE][/FONT][/SIZE][/FONT][FONT=Courier New][SIZE=4][COLOR=#0000ff][FONT=Courier New][SIZE=4][COLOR=#0000ff][FONT=Courier New][SIZE=4][COLOR=#0000ff]int[/COLOR][/SIZE][/FONT][/COLOR][/SIZE][/FONT][/COLOR][/SIZE][/FONT][FONT=Courier New][SIZE=4][FONT=Courier New][SIZE=4] argc, TCHAR* argv[], TCHAR* envp[])
{
[/SIZE][/FONT][/SIZE][/FONT][FONT=Courier New][SIZE=4][COLOR=#0000ff][FONT=Courier New][SIZE=4][COLOR=#0000ff][FONT=Courier New][SIZE=4][COLOR=#0000ff]int[/COLOR][/SIZE][/FONT][/COLOR][/SIZE][/FONT][/COLOR][/SIZE][/FONT][FONT=Courier New][SIZE=4][FONT=Courier New][SIZE=4] nRetCode = 0;
[/SIZE][/FONT][/SIZE][/FONT][FONT=Courier New][SIZE=4][COLOR=#008000][FONT=Courier New][SIZE=4][COLOR=#008000][FONT=Courier New][SIZE=4][COLOR=#008000]// MFC initialisieren und drucken. Bei Fehlschlag Fehlermeldung aufrufen.
[/COLOR][/SIZE][/FONT][/COLOR][/SIZE][/FONT][/COLOR][/SIZE][/FONT][FONT=Courier New][SIZE=4][FONT=Courier New][SIZE=4][/SIZE][/FONT][/SIZE][/FONT][FONT=Courier New][SIZE=4][COLOR=#0000ff][FONT=Courier New][SIZE=4][COLOR=#0000ff][FONT=Courier New][SIZE=4][COLOR=#0000ff]if[/COLOR][/SIZE][/FONT][/COLOR][/SIZE][/FONT][/COLOR][/SIZE][/FONT][FONT=Courier New][SIZE=4][FONT=Courier New][SIZE=4] (!AfxWinInit(::GetModuleHandle(NULL), NULL, ::GetCommandLine(), 0))
{
[/SIZE][/FONT][/SIZE][/FONT][FONT=Courier New][SIZE=4][COLOR=#008000][FONT=Courier New][SIZE=4][COLOR=#008000][FONT=Courier New][SIZE=4][COLOR=#008000]// TODO: Den Fehlercode an Ihre Anforderungen anpassen.
[/COLOR][/SIZE][/FONT][/COLOR][/SIZE][/FONT][/COLOR][/SIZE][/FONT][FONT=Courier New][SIZE=4][FONT=Courier New][SIZE=4]_tprintf(_T([/SIZE][/FONT][/SIZE][/FONT][FONT=Courier New][SIZE=4][COLOR=#a31515][FONT=Courier New][SIZE=4][COLOR=#a31515][FONT=Courier New][SIZE=4][COLOR=#a31515]"Schwerwiegender Fehler bei der MFC-Initialisierung\n"[/COLOR][/SIZE][/FONT][/COLOR][/SIZE][/FONT][/COLOR][/SIZE][/FONT][FONT=Courier New][SIZE=4][FONT=Courier New][SIZE=4]));
nRetCode = 1;
}
[/SIZE][/FONT][/SIZE][/FONT][FONT=Courier New][SIZE=4][COLOR=#0000ff][FONT=Courier New][SIZE=4][COLOR=#0000ff][FONT=Courier New][SIZE=4][COLOR=#0000ff]else
[/COLOR][/SIZE][/FONT][/COLOR][/SIZE][/FONT][/COLOR][/SIZE][/FONT][FONT=Courier New][SIZE=4][FONT=Courier New][SIZE=4]{
[/SIZE][/FONT][/SIZE][/FONT][FONT=Courier New][SIZE=4][COLOR=#008000][FONT=Courier New][SIZE=4][COLOR=#008000][FONT=Courier New][SIZE=4][COLOR=#008000]// TODO: Hier den Code für das Verhalten der Anwendung schreiben.
[/COLOR][/SIZE][/FONT][/COLOR][/SIZE][/FONT][/COLOR][/SIZE][/FONT][FONT=Courier New][SIZE=4][FONT=Courier New][SIZE=4]cout << [/SIZE][/FONT][/SIZE][/FONT][FONT=Courier New][SIZE=4][COLOR=#a31515][FONT=Courier New][SIZE=4][COLOR=#a31515][FONT=Courier New][SIZE=4][COLOR=#a31515]"Welcome to SocketServer !"[/COLOR][/SIZE][/FONT][/COLOR][/SIZE][/FONT][/COLOR][/SIZE][/FONT][FONT=Courier New][SIZE=4][FONT=Courier New][SIZE=4] << endl;
cout << [/SIZE][/FONT][/SIZE][/FONT][FONT=Courier New][SIZE=4][COLOR=#a31515][FONT=Courier New][SIZE=4][COLOR=#a31515][FONT=Courier New][SIZE=4][COLOR=#a31515]"========================="[/COLOR][/SIZE][/FONT][/COLOR][/SIZE][/FONT][/COLOR][/SIZE][/FONT][FONT=Courier New][SIZE=4][FONT=Courier New][SIZE=4] << endl;
cout << endl;
[/SIZE][/FONT][/SIZE][/FONT][FONT=Courier New][SIZE=4][COLOR=#008000][FONT=Courier New][SIZE=4][COLOR=#008000][FONT=Courier New][SIZE=4][COLOR=#008000]// establish Socket
[/COLOR][/SIZE][/FONT][/COLOR][/SIZE][/FONT][/COLOR][/SIZE][/FONT][FONT=Courier New][SIZE=4][FONT=Courier New][SIZE=4]actualSocket = InitSocket();
cout << [/SIZE][/FONT][/SIZE][/FONT][FONT=Courier New][SIZE=4][COLOR=#a31515][FONT=Courier New][SIZE=4][COLOR=#a31515][FONT=Courier New][SIZE=4][COLOR=#a31515]"Socket successfully established!"[/COLOR][/SIZE][/FONT][/COLOR][/SIZE][/FONT][/COLOR][/SIZE][/FONT][FONT=Courier New][SIZE=4][FONT=Courier New][SIZE=4] << endl;
[/SIZE][/FONT][/SIZE][/FONT][FONT=Courier New][SIZE=4][COLOR=#008000][FONT=Courier New][SIZE=4][COLOR=#008000][FONT=Courier New][SIZE=4][COLOR=#008000]// bind Socket
[/COLOR][/SIZE][/FONT][/COLOR][/SIZE][/FONT][/COLOR][/SIZE][/FONT][FONT=Courier New][SIZE=4][FONT=Courier New][SIZE=4][/SIZE][/FONT][/SIZE][/FONT][FONT=Courier New][SIZE=4][COLOR=#0000ff][FONT=Courier New][SIZE=4][COLOR=#0000ff][FONT=Courier New][SIZE=4][COLOR=#0000ff]if[/COLOR][/SIZE][/FONT][/COLOR][/SIZE][/FONT][/COLOR][/SIZE][/FONT][FONT=Courier New][SIZE=4][FONT=Courier New][SIZE=4] ( bindSocket( actualSocket, 6666 ) )
cout << [/SIZE][/FONT][/SIZE][/FONT][FONT=Courier New][SIZE=4][COLOR=#a31515][FONT=Courier New][SIZE=4][COLOR=#a31515][FONT=Courier New][SIZE=4][COLOR=#a31515]"Socket bound!"[/COLOR][/SIZE][/FONT][/COLOR][/SIZE][/FONT][/COLOR][/SIZE][/FONT][FONT=Courier New][SIZE=4][FONT=Courier New][SIZE=4] << endl;
[/SIZE][/FONT][/SIZE][/FONT][FONT=Courier New][SIZE=4][COLOR=#0000ff][FONT=Courier New][SIZE=4][COLOR=#0000ff][FONT=Courier New][SIZE=4][COLOR=#0000ff]else
[/COLOR][/SIZE][/FONT][/COLOR][/SIZE][/FONT][/COLOR][/SIZE][/FONT][FONT=Courier New][SIZE=4][FONT=Courier New][SIZE=4]cout << [/SIZE][/FONT][/SIZE][/FONT][FONT=Courier New][SIZE=4][COLOR=#a31515][FONT=Courier New][SIZE=4][COLOR=#a31515][FONT=Courier New][SIZE=4][COLOR=#a31515]"bind failed !"[/COLOR][/SIZE][/FONT][/COLOR][/SIZE][/FONT][/COLOR][/SIZE][/FONT][FONT=Courier New][SIZE=4][FONT=Courier New][SIZE=4] << endl;
[/SIZE][/FONT][/SIZE][/FONT][FONT=Courier New][SIZE=4][COLOR=#008000][FONT=Courier New][SIZE=4][COLOR=#008000][FONT=Courier New][SIZE=4][COLOR=#008000]// listen
[/COLOR][/SIZE][/FONT][/COLOR][/SIZE][/FONT][/COLOR][/SIZE][/FONT][FONT=Courier New][SIZE=4][FONT=Courier New][SIZE=4][/SIZE][/FONT][/SIZE][/FONT][FONT=Courier New][SIZE=4][COLOR=#0000ff][FONT=Courier New][SIZE=4][COLOR=#0000ff][FONT=Courier New][SIZE=4][COLOR=#0000ff]if[/COLOR][/SIZE][/FONT][/COLOR][/SIZE][/FONT][/COLOR][/SIZE][/FONT][FONT=Courier New][SIZE=4][FONT=Courier New][SIZE=4] ( listenSocket( actualSocket, 0 ) )
cout << [/SIZE][/FONT][/SIZE][/FONT][FONT=Courier New][SIZE=4][COLOR=#a31515][FONT=Courier New][SIZE=4][COLOR=#a31515][FONT=Courier New][SIZE=4][COLOR=#a31515]"listen executed on Socket"[/COLOR][/SIZE][/FONT][/COLOR][/SIZE][/FONT][/COLOR][/SIZE][/FONT][FONT=Courier New][SIZE=4][FONT=Courier New][SIZE=4] << endl;
[/SIZE][/FONT][/SIZE][/FONT][FONT=Courier New][SIZE=4][COLOR=#0000ff][FONT=Courier New][SIZE=4][COLOR=#0000ff][FONT=Courier New][SIZE=4][COLOR=#0000ff]else
[/COLOR][/SIZE][/FONT][/COLOR][/SIZE][/FONT][/COLOR][/SIZE][/FONT][FONT=Courier New][SIZE=4][FONT=Courier New][SIZE=4]cout << [/SIZE][/FONT][/SIZE][/FONT][FONT=Courier New][SIZE=4][COLOR=#a31515][FONT=Courier New][SIZE=4][COLOR=#a31515][FONT=Courier New][SIZE=4][COLOR=#a31515]"listen failed!"[/COLOR][/SIZE][/FONT][/COLOR][/SIZE][/FONT][/COLOR][/SIZE][/FONT][FONT=Courier New][SIZE=4][FONT=Courier New][SIZE=4] << endl;
cout << [/SIZE][/FONT][/SIZE][/FONT][FONT=Courier New][SIZE=4][COLOR=#a31515][FONT=Courier New][SIZE=4][COLOR=#a31515][FONT=Courier New][SIZE=4][COLOR=#a31515]"waiting for incoming connection ..."[/COLOR][/SIZE][/FONT][/COLOR][/SIZE][/FONT][/COLOR][/SIZE][/FONT][FONT=Courier New][SIZE=4][FONT=Courier New][SIZE=4] << endl;
[/SIZE][/FONT][/SIZE][/FONT][FONT=Courier New][SIZE=4][COLOR=#008000][FONT=Courier New][SIZE=4][COLOR=#008000][FONT=Courier New][SIZE=4][COLOR=#008000]// wait for client to aquire a new connection
[/COLOR][/SIZE][/FONT][/COLOR][/SIZE][/FONT][/COLOR][/SIZE][/FONT][FONT=Courier New][SIZE=4][FONT=Courier New][SIZE=4]memset ( pBuff, 0, BuffSize );
Connection = INVALID_SOCKET;
Connection = acceptSocket( actualSocket );
[/SIZE][/FONT][/SIZE][/FONT][FONT=Courier New][SIZE=4][COLOR=#008000][FONT=Courier New][SIZE=4][COLOR=#008000][FONT=Courier New][SIZE=4][COLOR=#008000]// security check: Is the connection valid ?
[/COLOR][/SIZE][/FONT][/COLOR][/SIZE][/FONT][/COLOR][/SIZE][/FONT][FONT=Courier New][SIZE=4][FONT=Courier New][SIZE=4][/SIZE][/FONT][/SIZE][/FONT][FONT=Courier New][SIZE=4][COLOR=#0000ff][FONT=Courier New][SIZE=4][COLOR=#0000ff][FONT=Courier New][SIZE=4][COLOR=#0000ff]if[/COLOR][/SIZE][/FONT][/COLOR][/SIZE][/FONT][/COLOR][/SIZE][/FONT][FONT=Courier New][SIZE=4][FONT=Courier New][SIZE=4] ( Connection != INVALID_SOCKET )
{
cout << [/SIZE][/FONT][/SIZE][/FONT][FONT=Courier New][SIZE=4][COLOR=#a31515][FONT=Courier New][SIZE=4][COLOR=#a31515][FONT=Courier New][SIZE=4][COLOR=#a31515]"Connection to client established"[/COLOR][/SIZE][/FONT][/COLOR][/SIZE][/FONT][/COLOR][/SIZE][/FONT][FONT=Courier New][SIZE=4][FONT=Courier New][SIZE=4] << endl;
[/SIZE][/FONT][/SIZE][/FONT][FONT=Courier New][SIZE=4][COLOR=#008000][FONT=Courier New][SIZE=4][COLOR=#008000][FONT=Courier New][SIZE=4][COLOR=#008000]// in real life, every new Connection would be passed
[/COLOR][/SIZE][/FONT][/COLOR][/SIZE][/FONT][/COLOR][/SIZE][/FONT][FONT=Courier New][SIZE=4][FONT=Courier New][SIZE=4][/SIZE][/FONT][/SIZE][/FONT][FONT=Courier New][SIZE=4][COLOR=#008000][FONT=Courier New][SIZE=4][COLOR=#008000][FONT=Courier New][SIZE=4][COLOR=#008000]// to a new Thread in order to enable the base socket server
[/COLOR][/SIZE][/FONT][/COLOR][/SIZE][/FONT][/COLOR][/SIZE][/FONT][FONT=Courier New][SIZE=4][FONT=Courier New][SIZE=4][/SIZE][/FONT][/SIZE][/FONT][FONT=Courier New][SIZE=4][COLOR=#008000][FONT=Courier New][SIZE=4][COLOR=#008000][FONT=Courier New][SIZE=4][COLOR=#008000]// to wait for other incoming connection requests
[/COLOR][/SIZE][/FONT][/COLOR][/SIZE][/FONT][/COLOR][/SIZE][/FONT][FONT=Courier New][SIZE=4][FONT=Courier New][SIZE=4][/SIZE][/FONT][/SIZE][/FONT][FONT=Courier New][SIZE=4][COLOR=#008000][FONT=Courier New][SIZE=4][COLOR=#008000][FONT=Courier New][SIZE=4][COLOR=#008000]// this little example is single- Thread only, so we can
[/COLOR][/SIZE][/FONT][/COLOR][/SIZE][/FONT][/COLOR][/SIZE][/FONT][FONT=Courier New][SIZE=4][FONT=Courier New][SIZE=4][/SIZE][/FONT][/SIZE][/FONT][FONT=Courier New][SIZE=4][COLOR=#008000][FONT=Courier New][SIZE=4][COLOR=#008000][FONT=Courier New][SIZE=4][COLOR=#008000]// just handle one connection at a time !
[/COLOR][/SIZE][/FONT][/COLOR][/SIZE][/FONT][/COLOR][/SIZE][/FONT][FONT=Courier New][SIZE=4][FONT=Courier New][SIZE=4]
[/SIZE][/FONT][/SIZE][/FONT][FONT=Courier New][SIZE=4][COLOR=#008000][FONT=Courier New][SIZE=4][COLOR=#008000][FONT=Courier New][SIZE=4][COLOR=#008000]// Connection established, client ante portas
[/COLOR][/SIZE][/FONT][/COLOR][/SIZE][/FONT][/COLOR][/SIZE][/FONT][FONT=Courier New][SIZE=4][FONT=Courier New][SIZE=4]memcpy( pBuff, [/SIZE][/FONT][/SIZE][/FONT][FONT=Courier New][SIZE=4][COLOR=#a31515][FONT=Courier New][SIZE=4][COLOR=#a31515][FONT=Courier New][SIZE=4][COLOR=#a31515]"Welcome to the TCP Socket Host !"[/COLOR][/SIZE][/FONT][/COLOR][/SIZE][/FONT][/COLOR][/SIZE][/FONT][FONT=Courier New][SIZE=4][FONT=Courier New][SIZE=4], BuffSize );
sendSocket ( Connection, pBuff, strlen( pBuff) );
[/SIZE][/FONT][/SIZE][/FONT][FONT=Courier New][SIZE=4][COLOR=#0000ff][FONT=Courier New][SIZE=4][COLOR=#0000ff][FONT=Courier New][SIZE=4][COLOR=#0000ff]while[/COLOR][/SIZE][/FONT][/COLOR][/SIZE][/FONT][/COLOR][/SIZE][/FONT][FONT=Courier New][SIZE=4][FONT=Courier New][SIZE=4]([/SIZE][/FONT][/SIZE][/FONT][FONT=Courier New][SIZE=4][COLOR=#0000ff][FONT=Courier New][SIZE=4][COLOR=#0000ff][FONT=Courier New][SIZE=4][COLOR=#0000ff]true[/COLOR][/SIZE][/FONT][/COLOR][/SIZE][/FONT][/COLOR][/SIZE][/FONT][FONT=Courier New][SIZE=4][FONT=Courier New][SIZE=4])
{
memset ( pBuff, 0, 255 );
[/SIZE][/FONT][/SIZE][/FONT][FONT=Courier New][SIZE=4][COLOR=#0000ff][FONT=Courier New][SIZE=4][COLOR=#0000ff][FONT=Courier New][SIZE=4][COLOR=#0000ff]if[/COLOR][/SIZE][/FONT][/COLOR][/SIZE][/FONT][/COLOR][/SIZE][/FONT][FONT=Courier New][SIZE=4][FONT=Courier New][SIZE=4] ( receiveSocket ( Connection, pBuff, BuffSize ) == 0 )
{
cout << [/SIZE][/FONT][/SIZE][/FONT][FONT=Courier New][SIZE=4][COLOR=#a31515][FONT=Courier New][SIZE=4][COLOR=#a31515][FONT=Courier New][SIZE=4][COLOR=#a31515]"Error receiving data"[/COLOR][/SIZE][/FONT][/COLOR][/SIZE][/FONT][/COLOR][/SIZE][/FONT][FONT=Courier New][SIZE=4][FONT=Courier New][SIZE=4] << endl;
[/SIZE][/FONT][/SIZE][/FONT][FONT=Courier New][SIZE=4][COLOR=#0000ff][FONT=Courier New][SIZE=4][COLOR=#0000ff][FONT=Courier New][SIZE=4][COLOR=#0000ff]break[/COLOR][/SIZE][/FONT][/COLOR][/SIZE][/FONT][/COLOR][/SIZE][/FONT][FONT=Courier New][SIZE=4][FONT=Courier New][SIZE=4];
}
[/SIZE][/FONT][/SIZE][/FONT][FONT=Courier New][SIZE=4][COLOR=#0000ff][FONT=Courier New][SIZE=4][COLOR=#0000ff][FONT=Courier New][SIZE=4][COLOR=#0000ff]if[/COLOR][/SIZE][/FONT][/COLOR][/SIZE][/FONT][/COLOR][/SIZE][/FONT][FONT=Courier New][SIZE=4][FONT=Courier New][SIZE=4] ( strcmp ( pBuff, [/SIZE][/FONT][/SIZE][/FONT][FONT=Courier New][SIZE=4][COLOR=#a31515][FONT=Courier New][SIZE=4][COLOR=#a31515][FONT=Courier New][SIZE=4][COLOR=#a31515]"Bye"[/COLOR][/SIZE][/FONT][/COLOR][/SIZE][/FONT][/COLOR][/SIZE][/FONT][FONT=Courier New][SIZE=4][FONT=Courier New][SIZE=4] ) == 0 )
{
cout << [/SIZE][/FONT][/SIZE][/FONT][FONT=Courier New][SIZE=4][COLOR=#a31515][FONT=Courier New][SIZE=4][COLOR=#a31515][FONT=Courier New][SIZE=4][COLOR=#a31515]"Client shutting down"[/COLOR][/SIZE][/FONT][/COLOR][/SIZE][/FONT][/COLOR][/SIZE][/FONT][FONT=Courier New][SIZE=4][FONT=Courier New][SIZE=4] << endl;
memset ( pBuff, 0, 255 );
memcpy( pBuff, [/SIZE][/FONT][/SIZE][/FONT][FONT=Courier New][SIZE=4][COLOR=#a31515][FONT=Courier New][SIZE=4][COLOR=#a31515][FONT=Courier New][SIZE=4][COLOR=#a31515]"I see you !"[/COLOR][/SIZE][/FONT][/COLOR][/SIZE][/FONT][/COLOR][/SIZE][/FONT][FONT=Courier New][SIZE=4][FONT=Courier New][SIZE=4], BuffSize );
sendSocket ( Connection, pBuff, strlen( pBuff) );
[/SIZE][/FONT][/SIZE][/FONT][FONT=Courier New][SIZE=4][COLOR=#0000ff][FONT=Courier New][SIZE=4][COLOR=#0000ff][FONT=Courier New][SIZE=4][COLOR=#0000ff]break[/COLOR][/SIZE][/FONT][/COLOR][/SIZE][/FONT][/COLOR][/SIZE][/FONT][FONT=Courier New][SIZE=4][FONT=Courier New][SIZE=4];
}
cout << [/SIZE][/FONT][/SIZE][/FONT][FONT=Courier New][SIZE=4][COLOR=#a31515][FONT=Courier New][SIZE=4][COLOR=#a31515][FONT=Courier New][SIZE=4][COLOR=#a31515]"Client: "[/COLOR][/SIZE][/FONT][/COLOR][/SIZE][/FONT][/COLOR][/SIZE][/FONT][FONT=Courier New][SIZE=4][FONT=Courier New][SIZE=4] << pBuff << endl;
[/SIZE][/FONT][/SIZE][/FONT][FONT=Courier New][SIZE=4][COLOR=#0000ff][FONT=Courier New][SIZE=4][COLOR=#0000ff][FONT=Courier New][SIZE=4][COLOR=#0000ff]if[/COLOR][/SIZE][/FONT][/COLOR][/SIZE][/FONT][/COLOR][/SIZE][/FONT][FONT=Courier New][SIZE=4][FONT=Courier New][SIZE=4] ( sendSocket ( Connection, pBuff, strlen( pBuff) ) == 0 )
{
cout << [/SIZE][/FONT][/SIZE][/FONT][FONT=Courier New][SIZE=4][COLOR=#a31515][FONT=Courier New][SIZE=4][COLOR=#a31515][FONT=Courier New][SIZE=4][COLOR=#a31515]"Error sending data"[/COLOR][/SIZE][/FONT][/COLOR][/SIZE][/FONT][/COLOR][/SIZE][/FONT][FONT=Courier New][SIZE=4][FONT=Courier New][SIZE=4] << endl;
[/SIZE][/FONT][/SIZE][/FONT][FONT=Courier New][SIZE=4][COLOR=#0000ff][FONT=Courier New][SIZE=4][COLOR=#0000ff][FONT=Courier New][SIZE=4][COLOR=#0000ff]break[/COLOR][/SIZE][/FONT][/COLOR][/SIZE][/FONT][/COLOR][/SIZE][/FONT][FONT=Courier New][SIZE=4][FONT=Courier New][SIZE=4];
};
}
}
[/SIZE][/FONT][/SIZE][/FONT][FONT=Courier New][SIZE=4][COLOR=#0000ff][FONT=Courier New][SIZE=4][COLOR=#0000ff][FONT=Courier New][SIZE=4][COLOR=#0000ff]else
[/COLOR][/SIZE][/FONT][/COLOR][/SIZE][/FONT][/COLOR][/SIZE][/FONT][FONT=Courier New][SIZE=4][FONT=Courier New][SIZE=4]cout << [/SIZE][/FONT][/SIZE][/FONT][FONT=Courier New][SIZE=4][COLOR=#a31515][FONT=Courier New][SIZE=4][COLOR=#a31515][FONT=Courier New][SIZE=4][COLOR=#a31515]"Connection failed!"[/COLOR][/SIZE][/FONT][/COLOR][/SIZE][/FONT][/COLOR][/SIZE][/FONT][FONT=Courier New][SIZE=4][FONT=Courier New][SIZE=4] << endl;
[/SIZE][/FONT][/SIZE][/FONT][FONT=Courier New][SIZE=4][COLOR=#008000][FONT=Courier New][SIZE=4][COLOR=#008000][FONT=Courier New][SIZE=4][COLOR=#008000]// everything done, shutdown
[/COLOR][/SIZE][/FONT][/COLOR][/SIZE][/FONT][/COLOR][/SIZE][/FONT][FONT=Courier New][SIZE=4][FONT=Courier New][SIZE=4][/SIZE][/FONT][/SIZE][/FONT][FONT=Courier New][SIZE=4][COLOR=#0000ff][FONT=Courier New][SIZE=4][COLOR=#0000ff][FONT=Courier New][SIZE=4][COLOR=#0000ff]if[/COLOR][/SIZE][/FONT][/COLOR][/SIZE][/FONT][/COLOR][/SIZE][/FONT][FONT=Courier New][SIZE=4][FONT=Courier New][SIZE=4] ( Connection != INVALID_SOCKET )
{
[/SIZE][/FONT][/SIZE][/FONT][FONT=Courier New][SIZE=4][COLOR=#0000ff][FONT=Courier New][SIZE=4][COLOR=#0000ff][FONT=Courier New][SIZE=4][COLOR=#0000ff]if[/COLOR][/SIZE][/FONT][/COLOR][/SIZE][/FONT][/COLOR][/SIZE][/FONT][FONT=Courier New][SIZE=4][FONT=Courier New][SIZE=4] ( closeSocket( Connection ) )
cout << [/SIZE][/FONT][/SIZE][/FONT][FONT=Courier New][SIZE=4][COLOR=#a31515][FONT=Courier New][SIZE=4][COLOR=#a31515][FONT=Courier New][SIZE=4][COLOR=#a31515]"Connection Socket closed"[/COLOR][/SIZE][/FONT][/COLOR][/SIZE][/FONT][/COLOR][/SIZE][/FONT][FONT=Courier New][SIZE=4][FONT=Courier New][SIZE=4] << endl;
[/SIZE][/FONT][/SIZE][/FONT][FONT=Courier New][SIZE=4][COLOR=#0000ff][FONT=Courier New][SIZE=4][COLOR=#0000ff][FONT=Courier New][SIZE=4][COLOR=#0000ff]else
[/COLOR][/SIZE][/FONT][/COLOR][/SIZE][/FONT][/COLOR][/SIZE][/FONT][FONT=Courier New][SIZE=4][FONT=Courier New][SIZE=4]cout << [/SIZE][/FONT][/SIZE][/FONT][FONT=Courier New][SIZE=4][COLOR=#a31515][FONT=Courier New][SIZE=4][COLOR=#a31515][FONT=Courier New][SIZE=4][COLOR=#a31515]"Connection Socket close failed!"[/COLOR][/SIZE][/FONT][/COLOR][/SIZE][/FONT][/COLOR][/SIZE][/FONT][FONT=Courier New][SIZE=4][FONT=Courier New][SIZE=4] << endl;
}
[/SIZE][/FONT][/SIZE][/FONT][FONT=Courier New][SIZE=4][COLOR=#0000ff][FONT=Courier New][SIZE=4][COLOR=#0000ff][FONT=Courier New][SIZE=4][COLOR=#0000ff]if[/COLOR][/SIZE][/FONT][/COLOR][/SIZE][/FONT][/COLOR][/SIZE][/FONT][FONT=Courier New][SIZE=4][FONT=Courier New][SIZE=4] ( closeSocket( actualSocket ) )
cout << [/SIZE][/FONT][/SIZE][/FONT][FONT=Courier New][SIZE=4][COLOR=#a31515][FONT=Courier New][SIZE=4][COLOR=#a31515][FONT=Courier New][SIZE=4][COLOR=#a31515]"Application Socket closed"[/COLOR][/SIZE][/FONT][/COLOR][/SIZE][/FONT][/COLOR][/SIZE][/FONT][FONT=Courier New][SIZE=4][FONT=Courier New][SIZE=4] << endl;
[/SIZE][/FONT][/SIZE][/FONT][FONT=Courier New][SIZE=4][COLOR=#0000ff][FONT=Courier New][SIZE=4][COLOR=#0000ff][FONT=Courier New][SIZE=4][COLOR=#0000ff]else
[/COLOR][/SIZE][/FONT][/COLOR][/SIZE][/FONT][/COLOR][/SIZE][/FONT][FONT=Courier New][SIZE=4][FONT=Courier New][SIZE=4]cout << [/SIZE][/FONT][/SIZE][/FONT][FONT=Courier New][SIZE=4][COLOR=#a31515][FONT=Courier New][SIZE=4][COLOR=#a31515][FONT=Courier New][SIZE=4][COLOR=#a31515]"Application socket close failed!"[/COLOR][/SIZE][/FONT][/COLOR][/SIZE][/FONT][/COLOR][/SIZE][/FONT][FONT=Courier New][SIZE=4][FONT=Courier New][SIZE=4] << endl;
WSACleanup();
}
[/SIZE][/FONT][/SIZE][/FONT][FONT=Courier New][SIZE=4][COLOR=#0000ff][FONT=Courier New][SIZE=4][COLOR=#0000ff][FONT=Courier New][SIZE=4][COLOR=#0000ff]return[/COLOR][/SIZE][/FONT][/COLOR][/SIZE][/FONT][/COLOR][/SIZE][/FONT][FONT=Courier New][SIZE=4][FONT=Courier New][SIZE=4] nRetCode;
}
[/SIZE][/FONT][/SIZE][/FONT][FONT=Courier New][SIZE=4][COLOR=#008000][FONT=Courier New][SIZE=4][COLOR=#008000][FONT=Courier New][SIZE=4][COLOR=#008000]// Implementierung der Socket-Funktionen
[/COLOR][/SIZE][/FONT][/COLOR][/SIZE][/FONT][/COLOR][/SIZE][/FONT][FONT=Courier New][SIZE=4][FONT=Courier New][SIZE=4][/SIZE][/FONT][/SIZE][/FONT][FONT=Courier New][SIZE=4][COLOR=#008000][FONT=Courier New][SIZE=4][COLOR=#008000][FONT=Courier New][SIZE=4][COLOR=#008000]// Initialize an IrDA Socket with standard options
[/COLOR][/SIZE][/FONT][/COLOR][/SIZE][/FONT][/COLOR][/SIZE][/FONT][FONT=Courier New][SIZE=4][FONT=Courier New][SIZE=4]SOCKET InitSocket()
{
[/SIZE][/FONT][/SIZE][/FONT][FONT=Courier New][SIZE=4][COLOR=#008000][FONT=Courier New][SIZE=4][COLOR=#008000][FONT=Courier New][SIZE=4][COLOR=#008000]// Initialize Winsock.dll
[/COLOR][/SIZE][/FONT][/COLOR][/SIZE][/FONT][/COLOR][/SIZE][/FONT][FONT=Courier New][SIZE=4][FONT=Courier New][SIZE=4][/SIZE][/FONT][/SIZE][/FONT][FONT=Courier New][SIZE=4][COLOR=#008000][FONT=Courier New][SIZE=4][COLOR=#008000][FONT=Courier New][SIZE=4][COLOR=#008000]//DebugBreak();
[/COLOR][/SIZE][/FONT][/COLOR][/SIZE][/FONT][/COLOR][/SIZE][/FONT][FONT=Courier New][SIZE=4][FONT=Courier New][SIZE=4][/SIZE][/FONT][/SIZE][/FONT][FONT=Courier New][SIZE=4][COLOR=#0000ff][FONT=Courier New][SIZE=4][COLOR=#0000ff][FONT=Courier New][SIZE=4][COLOR=#0000ff]if[/COLOR][/SIZE][/FONT][/COLOR][/SIZE][/FONT][/COLOR][/SIZE][/FONT][FONT=Courier New][SIZE=4][FONT=Courier New][SIZE=4] ( WSAStartup ( MAKEWORD(1,1), &WSAData ) != 0 )
{
[/SIZE][/FONT][/SIZE][/FONT][FONT=Courier New][SIZE=4][COLOR=#008000][FONT=Courier New][SIZE=4][COLOR=#008000][FONT=Courier New][SIZE=4][COLOR=#008000]// Error initializing Winsock.dll
[/COLOR][/SIZE][/FONT][/COLOR][/SIZE][/FONT][/COLOR][/SIZE][/FONT][FONT=Courier New][SIZE=4][FONT=Courier New][SIZE=4]ErrorHandler();
[/SIZE][/FONT][/SIZE][/FONT][FONT=Courier New][SIZE=4][COLOR=#0000ff][FONT=Courier New][SIZE=4][COLOR=#0000ff][FONT=Courier New][SIZE=4][COLOR=#0000ff]return[/COLOR][/SIZE][/FONT][/COLOR][/SIZE][/FONT][/COLOR][/SIZE][/FONT][FONT=Courier New][SIZE=4][FONT=Courier New][SIZE=4] NULL;
}
[/SIZE][/FONT][/SIZE][/FONT][FONT=Courier New][SIZE=4][COLOR=#008000][FONT=Courier New][SIZE=4][COLOR=#008000][FONT=Courier New][SIZE=4][COLOR=#008000]// clean up after successful init
[/COLOR][/SIZE][/FONT][/COLOR][/SIZE][/FONT][/COLOR][/SIZE][/FONT][FONT=Courier New][SIZE=4][FONT=Courier New][SIZE=4][/SIZE][/FONT][/SIZE][/FONT][FONT=Courier New][SIZE=4][COLOR=#008000][FONT=Courier New][SIZE=4][COLOR=#008000][FONT=Courier New][SIZE=4][COLOR=#008000]//WSACleanup();
[/COLOR][/SIZE][/FONT][/COLOR][/SIZE][/FONT][/COLOR][/SIZE][/FONT][FONT=Courier New][SIZE=4][FONT=Courier New][SIZE=4]
[/SIZE][/FONT][/SIZE][/FONT][FONT=Courier New][SIZE=4][COLOR=#008000][FONT=Courier New][SIZE=4][COLOR=#008000][FONT=Courier New][SIZE=4][COLOR=#008000]// Ok, Winsock dll initialized, proceed
[/COLOR][/SIZE][/FONT][/COLOR][/SIZE][/FONT][/COLOR][/SIZE][/FONT][FONT=Courier New][SIZE=4][FONT=Courier New][SIZE=4][/SIZE][/FONT][/SIZE][/FONT][FONT=Courier New][SIZE=4][COLOR=#008000][FONT=Courier New][SIZE=4][COLOR=#008000][FONT=Courier New][SIZE=4][COLOR=#008000]//DebugBreak();
[/COLOR][/SIZE][/FONT][/COLOR][/SIZE][/FONT][/COLOR][/SIZE][/FONT][FONT=Courier New][SIZE=4][FONT=Courier New][SIZE=4][/SIZE][/FONT][/SIZE][/FONT][FONT=Courier New][SIZE=4][COLOR=#008000][FONT=Courier New][SIZE=4][COLOR=#008000][FONT=Courier New][SIZE=4][COLOR=#008000]// initialize Server Socket
[/COLOR][/SIZE][/FONT][/COLOR][/SIZE][/FONT][/COLOR][/SIZE][/FONT][FONT=Courier New][SIZE=4][FONT=Courier New][SIZE=4][/SIZE][/FONT][/SIZE][/FONT][FONT=Courier New][SIZE=4][COLOR=#008000][FONT=Courier New][SIZE=4][COLOR=#008000][FONT=Courier New][SIZE=4][COLOR=#008000]//DebugBreak();
[/COLOR][/SIZE][/FONT][/COLOR][/SIZE][/FONT][/COLOR][/SIZE][/FONT][FONT=Courier New][SIZE=4][FONT=Courier New][SIZE=4]SOCKET ServSock = socket( AF_INET, [/SIZE][/FONT][/SIZE][/FONT][FONT=Courier New][SIZE=4][COLOR=#008000][FONT=Courier New][SIZE=4][COLOR=#008000][FONT=Courier New][SIZE=4][COLOR=#008000]// address family
[/COLOR][/SIZE][/FONT][/COLOR][/SIZE][/FONT][/COLOR][/SIZE][/FONT][FONT=Courier New][SIZE=4][FONT=Courier New][SIZE=4]SOCK_STREAM, [/SIZE][/FONT][/SIZE][/FONT][FONT=Courier New][SIZE=4][COLOR=#008000][FONT=Courier New][SIZE=4][COLOR=#008000][FONT=Courier New][SIZE=4][COLOR=#008000]// Socket type
[/COLOR][/SIZE][/FONT][/COLOR][/SIZE][/FONT][/COLOR][/SIZE][/FONT][FONT=Courier New][SIZE=4][FONT=Courier New][SIZE=4]IPPROTO_TCP [/SIZE][/FONT][/SIZE][/FONT][FONT=Courier New][SIZE=4][COLOR=#008000][FONT=Courier New][SIZE=4][COLOR=#008000][FONT=Courier New][SIZE=4][COLOR=#008000]// Protocol
[/COLOR][/SIZE][/FONT][/COLOR][/SIZE][/FONT][/COLOR][/SIZE][/FONT][FONT=Courier New][SIZE=4][FONT=Courier New][SIZE=4]);
[/SIZE][/FONT][/SIZE][/FONT][FONT=Courier New][SIZE=4][COLOR=#008000][FONT=Courier New][SIZE=4][COLOR=#008000][FONT=Courier New][SIZE=4][COLOR=#008000]/*
// invalid return values
INVALID_SOCKET (SOCKET)(~0)
SOCKET_ERROR (-1)
[/COLOR][/SIZE][/FONT][/COLOR][/SIZE][/FONT][/COLOR][/SIZE][/FONT][FONT=Courier New][SIZE=4][FONT=Courier New][SIZE=4][/SIZE][/FONT][/SIZE][/FONT][FONT=Courier New][SIZE=4][COLOR=#008000][FONT=Courier New][SIZE=4][COLOR=#008000][FONT=Courier New][SIZE=4][COLOR=#008000]// Socket Types
SOCK_STREAM 1 // stream socket
SOCK_DGRAM 2 // datagram socket
SOCK_RAW 3 // raw-protocol interface
SOCK_RDM 4 // reliably-delivered message
SOCK_SEQPACKET 5 // sequenced packet stream
[/COLOR][/SIZE][/FONT][/COLOR][/SIZE][/FONT][/COLOR][/SIZE][/FONT][FONT=Courier New][SIZE=4][FONT=Courier New][SIZE=4][/SIZE][/FONT][/SIZE][/FONT][FONT=Courier New][SIZE=4][COLOR=#008000][FONT=Courier New][SIZE=4][COLOR=#008000][FONT=Courier New][SIZE=4][COLOR=#008000]// AF_INET address family protocol options from winsock2.h
IPPROTO_IP 0 // dummy for IP
IPPROTO_HOPOPTS 0 // IPv6 hop-by-hop options
IPPROTO_ICMP 1 // control message protocol
IPPROTO_IGMP 2 // internet group management protocol
IPPROTO_GGP 3 // gateway^2 (deprecated)
IPPROTO_IPV4 4 // IPv4
IPPROTO_TCP 6 // tcp
IPPROTO_PUP 12 // pup
IPPROTO_UDP 17 // user datagram protocol
IPPROTO_IDP 22 // xns idp
IPPROTO_IPV6 41 // IPv6
IPPROTO_ROUTING 43 // IPv6 routing header
IPPROTO_FRAGMENT 44 // IPv6 fragmentation header
IPPROTO_ESP 50 // IPsec ESP header
IPPROTO_AH 51 // IPsec AH
IPPROTO_ICMPV6 58 // ICMPv6
IPPROTO_NONE 59 // IPv6 no next header
IPPROTO_DSTOPTS 60 // IPv6 destination options
IPPROTO_ND 77 // UNOFFICIAL net disk proto
IPPROTO_ICLFXBM 78
[/COLOR][/SIZE][/FONT][/COLOR][/SIZE][/FONT][/COLOR][/SIZE][/FONT][FONT=Courier New][SIZE=4][FONT=Courier New][SIZE=4][/SIZE][/FONT][/SIZE][/FONT][FONT=Courier New][SIZE=4][COLOR=#008000][FONT=Courier New][SIZE=4][COLOR=#008000][FONT=Courier New][SIZE=4][COLOR=#008000]IPPROTO_RAW 255 // raw IP packet
IPPROTO_MAX 256
[/COLOR][/SIZE][/FONT][/COLOR][/SIZE][/FONT][/COLOR][/SIZE][/FONT][FONT=Courier New][SIZE=4][FONT=Courier New][SIZE=4]
[/SIZE][/FONT][/SIZE][/FONT][FONT=Courier New][SIZE=4][COLOR=#008000][FONT=Courier New][SIZE=4][COLOR=#008000][FONT=Courier New][SIZE=4][COLOR=#008000]// Protocol families, same as address families for now.
// except for AF_IrDA
AF_UNSPEC 0 // unspecified
AF_UNIX 1 // local to host (pipes, portals)
AF_INET 2 // internetwork: UDP, TCP, etc.
AF_IMPLINK 3 // arpanet imp addresses
AF_PUP 4 // pup protocols: e.g. BSP
AF_CHAOS 5 // mit CHAOS protocols
AF_IPX 6 // IPX and SPX
AF_NS 6 // XEROX NS protocols
AF_ISO 7 // ISO protocols
AF_OSI AF_ISO // OSI is ISO
AF_ECMA 8 // european computer manufacturers
AF_DATAKIT 9 // datakit protocols
AF_CCITT 10 // CCITT protocols, X.25 etc
AF_SNA 11 // IBM SNA
AF_DECnet 12 // DECnet
AF_DLI 13 // Direct data link interface
AF_LAT 14 // LAT
AF_HYLINK 15 // NSC Hyperchannel
AF_APPLETALK 16 // AppleTalk
AF_NETBIOS 17 // NetBios-style addresses
AF_VOICEVIEW 18 // VoiceView
AF_FIREFOX 19 // FireFox
AF_UNKNOWN1 20 // Somebody is using this!
AF_BAN 21 // Banyan
AF_MAX 22
AF_IRDA 26 // 32 Bit IrDA, address family only
*/
[/COLOR][/SIZE][/FONT][/COLOR][/SIZE][/FONT][/COLOR][/SIZE][/FONT][FONT=Courier New][SIZE=4][FONT=Courier New][SIZE=4][/SIZE][/FONT][/SIZE][/FONT][FONT=Courier New][SIZE=4][COLOR=#0000ff][FONT=Courier New][SIZE=4][COLOR=#0000ff][FONT=Courier New][SIZE=4][COLOR=#0000ff]if[/COLOR][/SIZE][/FONT][/COLOR][/SIZE][/FONT][/COLOR][/SIZE][/FONT][FONT=Courier New][SIZE=4][FONT=Courier New][SIZE=4] ( ServSock == INVALID_SOCKET )
{
ErrorHandler();
[/SIZE][/FONT][/SIZE][/FONT][FONT=Courier New][SIZE=4][COLOR=#0000ff][FONT=Courier New][SIZE=4][COLOR=#0000ff][FONT=Courier New][SIZE=4][COLOR=#0000ff]return[/COLOR][/SIZE][/FONT][/COLOR][/SIZE][/FONT][/COLOR][/SIZE][/FONT][FONT=Courier New][SIZE=4][FONT=Courier New][SIZE=4] NULL;
}
[/SIZE][/FONT][/SIZE][/FONT][FONT=Courier New][SIZE=4][COLOR=#008000][FONT=Courier New][SIZE=4][COLOR=#008000][FONT=Courier New][SIZE=4][COLOR=#008000]// set some socket options
/*
if ( setsockopt( ServSock, // Socket
SOL_IRLMP, // option level
IRLMP_IAS_SET, // option name
(const char*) pIASSet, // option value
IASSetLen // value len
) == SOCKET_ERROR )
{
ErrorHandler();
return NULL;
}
if ( setsockopt( ServSock, // Socket
SOL_IRLMP, // option level
IRLMP_9WIRE_MODE, // option name
(const char*) &Enable9WireMode, // option value
sizeof(int) // value len
) == SOCKET_ERROR )
{
ErrorHandler();
return NULL;
}
*/
[/COLOR][/SIZE][/FONT][/COLOR][/SIZE][/FONT][/COLOR][/SIZE][/FONT][FONT=Courier New][SIZE=4][FONT=Courier New][SIZE=4][/SIZE][/FONT][/SIZE][/FONT][FONT=Courier New][SIZE=4][COLOR=#008000][FONT=Courier New][SIZE=4][COLOR=#008000][FONT=Courier New][SIZE=4][COLOR=#008000]/*
// usage:
int PASCAL FAR setsockopt (
IN SOCKET s,
IN int level,
IN int optname,
IN const char FAR * optval,
IN int optlen);
[/COLOR][/SIZE][/FONT][/COLOR][/SIZE][/FONT][/COLOR][/SIZE][/FONT][FONT=Courier New][SIZE=4][FONT=Courier New][SIZE=4][/SIZE][/FONT][/SIZE][/FONT][FONT=Courier New][SIZE=4][COLOR=#008000][FONT=Courier New][SIZE=4][COLOR=#008000][FONT=Courier New][SIZE=4][COLOR=#008000]// option level IrDA
SOL_IRLMP 0x00FF
[/COLOR][/SIZE][/FONT][/COLOR][/SIZE][/FONT][/COLOR][/SIZE][/FONT][FONT=Courier New][SIZE=4][FONT=Courier New][SIZE=4][/SIZE][/FONT][/SIZE][/FONT][FONT=Courier New][SIZE=4][COLOR=#008000][FONT=Courier New][SIZE=4][COLOR=#008000][FONT=Courier New][SIZE=4][COLOR=#008000]//Option names for use with [gs]etsockopt at the IP level.
IP_OPTIONS 1 // set/get IP per-packet options
IP_MULTICAST_IF 2 // set/get IP multicast interface
IP_MULTICAST_TTL 3 // set/get IP multicast timetolive
IP_MULTICAST_LOOP 4 // set/get IP multicast loopback
IP_ADD_MEMBERSHIP 5 // add an IP group membership
IP_DROP_MEMBERSHIP 6 // drop an IP group membership
IP_TTL 7 // set/get IP Time To Live
IP_TOS 8 // set/get IP Type Of Service
IP_DONTFRAGMENT 9 // set/get IP Don't Fragment flag
[/COLOR][/SIZE][/FONT][/COLOR][/SIZE][/FONT][/COLOR][/SIZE][/FONT][FONT=Courier New][SIZE=4][FONT=Courier New][SIZE=4][/SIZE][/FONT][/SIZE][/FONT][FONT=Courier New][SIZE=4][COLOR=#008000][FONT=Courier New][SIZE=4][COLOR=#008000][FONT=Courier New][SIZE=4][COLOR=#008000]// option names for IrDA
IRLMP_ENUMDEVICES 0x00000010
IRLMP_IAS_SET 0x00000011
IRLMP_IAS_QUERY 0x00000012
[/COLOR][/SIZE][/FONT][/COLOR][/SIZE][/FONT][/COLOR][/SIZE][/FONT][FONT=Courier New][SIZE=4][FONT=Courier New][SIZE=4][/SIZE][/FONT][/SIZE][/FONT][FONT=Courier New][SIZE=4][COLOR=#008000][FONT=Courier New][SIZE=4][COLOR=#008000][FONT=Courier New][SIZE=4][COLOR=#008000]// for options on other protocols, refer to the BSD file sys/socket.h
*/[/COLOR][/SIZE][/FONT][/COLOR][/SIZE][/FONT][/COLOR][/SIZE][/FONT][FONT=Courier New][SIZE=4][FONT=Courier New][SIZE=4]
[/SIZE][/FONT][/SIZE][/FONT][FONT=Courier New][SIZE=4][COLOR=#0000ff][FONT=Courier New][SIZE=4][COLOR=#0000ff][FONT=Courier New][SIZE=4][COLOR=#0000ff]return[/COLOR][/SIZE][/FONT][/COLOR][/SIZE][/FONT][/COLOR][/SIZE][/FONT][FONT=Courier New][SIZE=4][FONT=Courier New][SIZE=4] ServSock;
} [/SIZE][/FONT][/SIZE][/FONT][FONT=Courier New][SIZE=4][COLOR=#008000][FONT=Courier New][SIZE=4][COLOR=#008000][FONT=Courier New][SIZE=4][COLOR=#008000]// end of function InitIrDASocket
[/COLOR][/SIZE][/FONT][/COLOR][/SIZE][/FONT][/COLOR][/SIZE][/FONT][FONT=Courier New][SIZE=4][FONT=Courier New][SIZE=4][/SIZE][/FONT][/SIZE][/FONT][FONT=Courier New][SIZE=4][COLOR=#0000ff][FONT=Courier New][SIZE=4][COLOR=#0000ff][FONT=Courier New][SIZE=4][COLOR=#0000ff]bool[/COLOR][/SIZE][/FONT][/COLOR][/SIZE][/FONT][/COLOR][/SIZE][/FONT][FONT=Courier New][SIZE=4][FONT=Courier New][SIZE=4] bindSocket ( SOCKET Socket, [/SIZE][/FONT][/SIZE][/FONT][FONT=Courier New][SIZE=4][COLOR=#0000ff][FONT=Courier New][SIZE=4][COLOR=#0000ff][FONT=Courier New][SIZE=4][COLOR=#0000ff]int[/COLOR][/SIZE][/FONT][/COLOR][/SIZE][/FONT][/COLOR][/SIZE][/FONT][FONT=Courier New][SIZE=4][FONT=Courier New][SIZE=4] Port )
{
IPAddress.sin_family = AF_INET;
[/SIZE][/FONT][/SIZE][/FONT][FONT=Courier New][SIZE=4][COLOR=#008000][FONT=Courier New][SIZE=4][COLOR=#008000][FONT=Courier New][SIZE=4][COLOR=#008000]// htons converts a u_short from host to
[/COLOR][/SIZE][/FONT][/COLOR][/SIZE][/FONT][/COLOR][/SIZE][/FONT][FONT=Courier New][SIZE=4][FONT=Courier New][SIZE=4][/SIZE][/FONT][/SIZE][/FONT][FONT=Courier New][SIZE=4][COLOR=#008000][FONT=Courier New][SIZE=4][COLOR=#008000][FONT=Courier New][SIZE=4][COLOR=#008000]// TCP/IP network byte order, which is big-endian.
[/COLOR][/SIZE][/FONT][/COLOR][/SIZE][/FONT][/COLOR][/SIZE][/FONT][FONT=Courier New][SIZE=4][FONT=Courier New][SIZE=4]IPAddress.sin_port = htons( Port );
[/SIZE][/FONT][/SIZE][/FONT][FONT=Courier New][SIZE=4][COLOR=#008000][FONT=Courier New][SIZE=4][COLOR=#008000][FONT=Courier New][SIZE=4][COLOR=#008000]// htonl converts a u_long from host to
[/COLOR][/SIZE][/FONT][/COLOR][/SIZE][/FONT][/COLOR][/SIZE][/FONT][FONT=Courier New][SIZE=4][FONT=Courier New][SIZE=4][/SIZE][/FONT][/SIZE][/FONT][FONT=Courier New][SIZE=4][COLOR=#008000][FONT=Courier New][SIZE=4][COLOR=#008000][FONT=Courier New][SIZE=4][COLOR=#008000]// TCP/IP network byte order, which is big-endian.
[/COLOR][/SIZE][/FONT][/COLOR][/SIZE][/FONT][/COLOR][/SIZE][/FONT][FONT=Courier New][SIZE=4][FONT=Courier New][SIZE=4]IPAddress.sin_addr.S_un.S_addr = htonl( INADDR_ANY );
[/SIZE][/FONT][/SIZE][/FONT][FONT=Courier New][SIZE=4][COLOR=#008000][FONT=Courier New][SIZE=4][COLOR=#008000][FONT=Courier New][SIZE=4][COLOR=#008000]//IPAddress.sin_addr.S_un.S_addr = htonl( 172016000179 ); // 172.16.0.179
[/COLOR][/SIZE][/FONT][/COLOR][/SIZE][/FONT][/COLOR][/SIZE][/FONT][FONT=Courier New][SIZE=4][FONT=Courier New][SIZE=4][/SIZE][/FONT][/SIZE][/FONT][FONT=Courier New][SIZE=4][COLOR=#008000][FONT=Courier New][SIZE=4][COLOR=#008000][FONT=Courier New][SIZE=4][COLOR=#008000]//IPAddress.sin_addr.S_un.S_addr = htonl( 0xAC1000B3 ); // 172.16.0.179
[/COLOR][/SIZE][/FONT][/COLOR][/SIZE][/FONT][/COLOR][/SIZE][/FONT][FONT=Courier New][SIZE=4][FONT=Courier New][SIZE=4][/SIZE][/FONT][/SIZE][/FONT][FONT=Courier New][SIZE=4][COLOR=#008000][FONT=Courier New][SIZE=4][COLOR=#008000][FONT=Courier New][SIZE=4][COLOR=#008000]//IPAddress.sin_addr.S_un.S_addr = inet_addr( "172.16.0.179" );
/*
INADDR_ANY (u_long) 0x00000000
INADDR_LOOPBACK 0x7f000001
INADDR_BROADCAST (u_long) 0xffffffff
INADDR_NONE 0xffffffff
*/
[/COLOR][/SIZE][/FONT][/COLOR][/SIZE][/FONT][/COLOR][/SIZE][/FONT][FONT=Courier New][SIZE=4][FONT=Courier New][SIZE=4][/SIZE][/FONT][/SIZE][/FONT][FONT=Courier New][SIZE=4][COLOR=#008000][FONT=Courier New][SIZE=4][COLOR=#008000][FONT=Courier New][SIZE=4][COLOR=#008000]// bind socket to address
[/COLOR][/SIZE][/FONT][/COLOR][/SIZE][/FONT][/COLOR][/SIZE][/FONT][FONT=Courier New][SIZE=4][FONT=Courier New][SIZE=4][/SIZE][/FONT][/SIZE][/FONT][FONT=Courier New][SIZE=4][COLOR=#0000ff][FONT=Courier New][SIZE=4][COLOR=#0000ff][FONT=Courier New][SIZE=4][COLOR=#0000ff]if[/COLOR][/SIZE][/FONT][/COLOR][/SIZE][/FONT][/COLOR][/SIZE][/FONT][FONT=Courier New][SIZE=4][FONT=Courier New][SIZE=4] ( bind ( Socket, [/SIZE][/FONT][/SIZE][/FONT][FONT=Courier New][SIZE=4][COLOR=#008000][FONT=Courier New][SIZE=4][COLOR=#008000][FONT=Courier New][SIZE=4][COLOR=#008000]// Socket
[/COLOR][/SIZE][/FONT][/COLOR][/SIZE][/FONT][/COLOR][/SIZE][/FONT][FONT=Courier New][SIZE=4][FONT=Courier New][SIZE=4]([/SIZE][/FONT][/SIZE][/FONT][FONT=Courier New][SIZE=4][COLOR=#0000ff][FONT=Courier New][SIZE=4][COLOR=#0000ff][FONT=Courier New][SIZE=4][COLOR=#0000ff]const[/COLOR][/SIZE][/FONT][/COLOR][/SIZE][/FONT][/COLOR][/SIZE][/FONT][FONT=Courier New][SIZE=4][FONT=Courier New][SIZE=4] sockaddr*) &IPAddress, [/SIZE][/FONT][/SIZE][/FONT][FONT=Courier New][SIZE=4][COLOR=#008000][FONT=Courier New][SIZE=4][COLOR=#008000][FONT=Courier New][SIZE=4][COLOR=#008000]// Socket address
[/COLOR][/SIZE][/FONT][/COLOR][/SIZE][/FONT][/COLOR][/SIZE][/FONT][FONT=Courier New][SIZE=4][FONT=Courier New][SIZE=4][/SIZE][/FONT][/SIZE][/FONT][FONT=Courier New][SIZE=4][COLOR=#0000ff][FONT=Courier New][SIZE=4][COLOR=#0000ff][FONT=Courier New][SIZE=4][COLOR=#0000ff]sizeof[/COLOR][/SIZE][/FONT][/COLOR][/SIZE][/FONT][/COLOR][/SIZE][/FONT][FONT=Courier New][SIZE=4][FONT=Courier New][SIZE=4](IPAddress) ) == SOCKET_ERROR )
{
ErrorHandler();
[/SIZE][/FONT][/SIZE][/FONT][FONT=Courier New][SIZE=4][COLOR=#0000ff][FONT=Courier New][SIZE=4][COLOR=#0000ff][FONT=Courier New][SIZE=4][COLOR=#0000ff]return[/COLOR][/SIZE][/FONT][/COLOR][/SIZE][/FONT][/COLOR][/SIZE][/FONT][FONT=Courier New][SIZE=4][FONT=Courier New][SIZE=4] [/SIZE][/FONT][/SIZE][/FONT][FONT=Courier New][SIZE=4][COLOR=#0000ff][FONT=Courier New][SIZE=4][COLOR=#0000ff][FONT=Courier New][SIZE=4][COLOR=#0000ff]false[/COLOR][/SIZE][/FONT][/COLOR][/SIZE][/FONT][/COLOR][/SIZE][/FONT][FONT=Courier New][SIZE=4][FONT=Courier New][SIZE=4];
}
[/SIZE][/FONT][/SIZE][/FONT][FONT=Courier New][SIZE=4][COLOR=#0000ff][FONT=Courier New][SIZE=4][COLOR=#0000ff][FONT=Courier New][SIZE=4][COLOR=#0000ff]return[/COLOR][/SIZE][/FONT][/COLOR][/SIZE][/FONT][/COLOR][/SIZE][/FONT][FONT=Courier New][SIZE=4][FONT=Courier New][SIZE=4] [/SIZE][/FONT][/SIZE][/FONT][FONT=Courier New][SIZE=4][COLOR=#0000ff][FONT=Courier New][SIZE=4][COLOR=#0000ff][FONT=Courier New][SIZE=4][COLOR=#0000ff]true[/COLOR][/SIZE][/FONT][/COLOR][/SIZE][/FONT][/COLOR][/SIZE][/FONT][FONT=Courier New][SIZE=4][FONT=Courier New][SIZE=4];
} [/SIZE][/FONT][/SIZE][/FONT][FONT=Courier New][SIZE=4][COLOR=#008000][FONT=Courier New][SIZE=4][COLOR=#008000][FONT=Courier New][SIZE=4][COLOR=#008000]// end of function bindIrDASocket
[/COLOR][/SIZE][/FONT][/COLOR][/SIZE][/FONT][/COLOR][/SIZE][/FONT][FONT=Courier New][SIZE=4][FONT=Courier New][SIZE=4][/SIZE][/FONT][/SIZE][/FONT][FONT=Courier New][SIZE=4][COLOR=#0000ff][FONT=Courier New][SIZE=4][COLOR=#0000ff][FONT=Courier New][SIZE=4][COLOR=#0000ff]bool[/COLOR][/SIZE][/FONT][/COLOR][/SIZE][/FONT][/COLOR][/SIZE][/FONT][FONT=Courier New][SIZE=4][FONT=Courier New][SIZE=4] listenSocket ( SOCKET Socket,
[/SIZE][/FONT][/SIZE][/FONT][FONT=Courier New][SIZE=4][COLOR=#0000ff][FONT=Courier New][SIZE=4][COLOR=#0000ff][FONT=Courier New][SIZE=4][COLOR=#0000ff]int[/COLOR][/SIZE][/FONT][/COLOR][/SIZE][/FONT][/COLOR][/SIZE][/FONT][FONT=Courier New][SIZE=4][FONT=Courier New][SIZE=4] number )
{
[/SIZE][/FONT][/SIZE][/FONT][FONT=Courier New][SIZE=4][COLOR=#0000ff][FONT=Courier New][SIZE=4][COLOR=#0000ff][FONT=Courier New][SIZE=4][COLOR=#0000ff]if[/COLOR][/SIZE][/FONT][/COLOR][/SIZE][/FONT][/COLOR][/SIZE][/FONT][FONT=Courier New][SIZE=4][FONT=Courier New][SIZE=4] ( listen ( Socket,
number
) == SOCKET_ERROR )
{
ErrorHandler();
[/SIZE][/FONT][/SIZE][/FONT][FONT=Courier New][SIZE=4][COLOR=#0000ff][FONT=Courier New][SIZE=4][COLOR=#0000ff][FONT=Courier New][SIZE=4][COLOR=#0000ff]return[/COLOR][/SIZE][/FONT][/COLOR][/SIZE][/FONT][/COLOR][/SIZE][/FONT][FONT=Courier New][SIZE=4][FONT=Courier New][SIZE=4] [/SIZE][/FONT][/SIZE][/FONT][FONT=Courier New][SIZE=4][COLOR=#0000ff][FONT=Courier New][SIZE=4][COLOR=#0000ff][FONT=Courier New][SIZE=4][COLOR=#0000ff]false[/COLOR][/SIZE][/FONT][/COLOR][/SIZE][/FONT][/COLOR][/SIZE][/FONT][FONT=Courier New][SIZE=4][FONT=Courier New][SIZE=4];
}
[/SIZE][/FONT][/SIZE][/FONT][FONT=Courier New][SIZE=4][COLOR=#0000ff][FONT=Courier New][SIZE=4][COLOR=#0000ff][FONT=Courier New][SIZE=4][COLOR=#0000ff]return[/COLOR][/SIZE][/FONT][/COLOR][/SIZE][/FONT][/COLOR][/SIZE][/FONT][FONT=Courier New][SIZE=4][FONT=Courier New][SIZE=4] [/SIZE][/FONT][/SIZE][/FONT][FONT=Courier New][SIZE=4][COLOR=#0000ff][FONT=Courier New][SIZE=4][COLOR=#0000ff][FONT=Courier New][SIZE=4][COLOR=#0000ff]true[/COLOR][/SIZE][/FONT][/COLOR][/SIZE][/FONT][/COLOR][/SIZE][/FONT][FONT=Courier New][SIZE=4][FONT=Courier New][SIZE=4];
} [/SIZE][/FONT][/SIZE][/FONT][FONT=Courier New][SIZE=4][COLOR=#008000][FONT=Courier New][SIZE=4][COLOR=#008000][FONT=Courier New][SIZE=4][COLOR=#008000]// end of function listenIrDASocket
[/COLOR][/SIZE][/FONT][/COLOR][/SIZE][/FONT][/COLOR][/SIZE][/FONT][FONT=Courier New][SIZE=4][FONT=Courier New][SIZE=4]SOCKET acceptSocket ( SOCKET Socket )
{
SOCKET Connection = accept ( Socket,
(sockaddr*) &PeerSockAddr, [/SIZE][/FONT][/SIZE][/FONT][FONT=Courier New][SIZE=4][COLOR=#008000][FONT=Courier New][SIZE=4][COLOR=#008000][FONT=Courier New][SIZE=4][COLOR=#008000]// Socket address
[/COLOR][/SIZE][/FONT][/COLOR][/SIZE][/FONT][/COLOR][/SIZE][/FONT][FONT=Courier New][SIZE=4][FONT=Courier New][SIZE=4]&sizeofSockAddr );
[/SIZE][/FONT][/SIZE][/FONT][FONT=Courier New][SIZE=4][COLOR=#0000ff][FONT=Courier New][SIZE=4][COLOR=#0000ff][FONT=Courier New][SIZE=4][COLOR=#0000ff]return[/COLOR][/SIZE][/FONT][/COLOR][/SIZE][/FONT][/COLOR][/SIZE][/FONT][FONT=Courier New][SIZE=4][FONT=Courier New][SIZE=4] Connection;
} [/SIZE][/FONT][/SIZE][/FONT][FONT=Courier New][SIZE=4][COLOR=#008000][FONT=Courier New][SIZE=4][COLOR=#008000][FONT=Courier New][SIZE=4][COLOR=#008000]// end of function acceptIrDASocket
[/COLOR][/SIZE][/FONT][/COLOR][/SIZE][/FONT][/COLOR][/SIZE][/FONT][FONT=Courier New][SIZE=4][FONT=Courier New][SIZE=4][/SIZE][/FONT][/SIZE][/FONT][FONT=Courier New][SIZE=4][COLOR=#0000ff][FONT=Courier New][SIZE=4][COLOR=#0000ff][FONT=Courier New][SIZE=4][COLOR=#0000ff]int[/COLOR][/SIZE][/FONT][/COLOR][/SIZE][/FONT][/COLOR][/SIZE][/FONT][FONT=Courier New][SIZE=4][FONT=Courier New][SIZE=4] receiveSocket ( SOCKET Socket,
[/SIZE][/FONT][/SIZE][/FONT][FONT=Courier New][SIZE=4][COLOR=#0000ff][FONT=Courier New][SIZE=4][COLOR=#0000ff][FONT=Courier New][SIZE=4][COLOR=#0000ff]char[/COLOR][/SIZE][/FONT][/COLOR][/SIZE][/FONT][/COLOR][/SIZE][/FONT][FONT=Courier New][SIZE=4][FONT=Courier New][SIZE=4]* pBuf,
[/SIZE][/FONT][/SIZE][/FONT][FONT=Courier New][SIZE=4][COLOR=#0000ff][FONT=Courier New][SIZE=4][COLOR=#0000ff][FONT=Courier New][SIZE=4][COLOR=#0000ff]int[/COLOR][/SIZE][/FONT][/COLOR][/SIZE][/FONT][/COLOR][/SIZE][/FONT][FONT=Courier New][SIZE=4][FONT=Courier New][SIZE=4] BufLen )
{
[/SIZE][/FONT][/SIZE][/FONT][FONT=Courier New][SIZE=4][COLOR=#0000ff][FONT=Courier New][SIZE=4][COLOR=#0000ff][FONT=Courier New][SIZE=4][COLOR=#0000ff]int[/COLOR][/SIZE][/FONT][/COLOR][/SIZE][/FONT][/COLOR][/SIZE][/FONT][FONT=Courier New][SIZE=4][FONT=Courier New][SIZE=4] number = 0;
[/SIZE][/FONT][/SIZE][/FONT][FONT=Courier New][SIZE=4][COLOR=#008000][FONT=Courier New][SIZE=4][COLOR=#008000][FONT=Courier New][SIZE=4][COLOR=#008000]// receiving data
[/COLOR][/SIZE][/FONT][/COLOR][/SIZE][/FONT][/COLOR][/SIZE][/FONT][FONT=Courier New][SIZE=4][FONT=Courier New][SIZE=4][/SIZE][/FONT][/SIZE][/FONT][FONT=Courier New][SIZE=4][COLOR=#0000ff][FONT=Courier New][SIZE=4][COLOR=#0000ff][FONT=Courier New][SIZE=4][COLOR=#0000ff]if[/COLOR][/SIZE][/FONT][/COLOR][/SIZE][/FONT][/COLOR][/SIZE][/FONT][FONT=Courier New][SIZE=4][FONT=Courier New][SIZE=4] ( ( number = recv ( Socket,
pBuff,
BufLen,
0 ) ) == SOCKET_ERROR )
{
ErrorHandler();
[/SIZE][/FONT][/SIZE][/FONT][FONT=Courier New][SIZE=4][COLOR=#0000ff][FONT=Courier New][SIZE=4][COLOR=#0000ff][FONT=Courier New][SIZE=4][COLOR=#0000ff]return[/COLOR][/SIZE][/FONT][/COLOR][/SIZE][/FONT][/COLOR][/SIZE][/FONT][FONT=Courier New][SIZE=4][FONT=Courier New][SIZE=4] 0;
}
[/SIZE][/FONT][/SIZE][/FONT][FONT=Courier New][SIZE=4][COLOR=#0000ff][FONT=Courier New][SIZE=4][COLOR=#0000ff][FONT=Courier New][SIZE=4][COLOR=#0000ff]return[/COLOR][/SIZE][/FONT][/COLOR][/SIZE][/FONT][/COLOR][/SIZE][/FONT][FONT=Courier New][SIZE=4][FONT=Courier New][SIZE=4] number;
[/SIZE][/FONT][/SIZE][/FONT][FONT=Courier New][SIZE=4][COLOR=#008000][FONT=Courier New][SIZE=4][COLOR=#008000][FONT=Courier New][SIZE=4][COLOR=#008000]/*
int PASCAL FAR recv (
IN SOCKET s,
OUT char FAR * buf,
IN int len,
IN int flags);
[/COLOR][/SIZE][/FONT][/COLOR][/SIZE][/FONT][/COLOR][/SIZE][/FONT][FONT=Courier New][SIZE=4][FONT=Courier New][SIZE=4][/SIZE][/FONT][/SIZE][/FONT][FONT=Courier New][SIZE=4][COLOR=#008000][FONT=Courier New][SIZE=4][COLOR=#008000][FONT=Courier New][SIZE=4][COLOR=#008000]// send / receive flags:
FD_READ 0x01
FD_WRITE 0x02
FD_OOB 0x04
FD_ACCEPT 0x08
FD_CONNECT 0x10
FD_CLOSE 0x20
[/COLOR][/SIZE][/FONT][/COLOR][/SIZE][/FONT][/COLOR][/SIZE][/FONT][FONT=Courier New][SIZE=4][FONT=Courier New][SIZE=4][/SIZE][/FONT][/SIZE][/FONT][FONT=Courier New][SIZE=4][COLOR=#008000][FONT=Courier New][SIZE=4][COLOR=#008000][FONT=Courier New][SIZE=4][COLOR=#008000]*/
[/COLOR][/SIZE][/FONT][/COLOR][/SIZE][/FONT][/COLOR][/SIZE][/FONT][FONT=Courier New][SIZE=4][FONT=Courier New][SIZE=4]
} [/SIZE][/FONT][/SIZE][/FONT][FONT=Courier New][SIZE=4][COLOR=#008000][FONT=Courier New][SIZE=4][COLOR=#008000][FONT=Courier New][SIZE=4][COLOR=#008000]// end of function receiveIrDASocket
[/COLOR][/SIZE][/FONT][/COLOR][/SIZE][/FONT][/COLOR][/SIZE][/FONT][FONT=Courier New][SIZE=4][FONT=Courier New][SIZE=4][/SIZE][/FONT][/SIZE][/FONT][FONT=Courier New][SIZE=4][COLOR=#0000ff][FONT=Courier New][SIZE=4][COLOR=#0000ff][FONT=Courier New][SIZE=4][COLOR=#0000ff]int[/COLOR][/SIZE][/FONT][/COLOR][/SIZE][/FONT][/COLOR][/SIZE][/FONT][FONT=Courier New][SIZE=4][FONT=Courier New][SIZE=4] sendSocket ( SOCKET Socket,
[/SIZE][/FONT][/SIZE][/FONT][FONT=Courier New][SIZE=4][COLOR=#0000ff][FONT=Courier New][SIZE=4][COLOR=#0000ff][FONT=Courier New][SIZE=4][COLOR=#0000ff]char[/COLOR][/SIZE][/FONT][/COLOR][/SIZE][/FONT][/COLOR][/SIZE][/FONT][FONT=Courier New][SIZE=4][FONT=Courier New][SIZE=4]* pBuf,
[/SIZE][/FONT][/SIZE][/FONT][FONT=Courier New][SIZE=4][COLOR=#0000ff][FONT=Courier New][SIZE=4][COLOR=#0000ff][FONT=Courier New][SIZE=4][COLOR=#0000ff]int[/COLOR][/SIZE][/FONT][/COLOR][/SIZE][/FONT][/COLOR][/SIZE][/FONT][FONT=Courier New][SIZE=4][FONT=Courier New][SIZE=4] BufLen )
{
[/SIZE][/FONT][/SIZE][/FONT][FONT=Courier New][SIZE=4][COLOR=#0000ff][FONT=Courier New][SIZE=4][COLOR=#0000ff][FONT=Courier New][SIZE=4][COLOR=#0000ff]int[/COLOR][/SIZE][/FONT][/COLOR][/SIZE][/FONT][/COLOR][/SIZE][/FONT][FONT=Courier New][SIZE=4][FONT=Courier New][SIZE=4] number = 0;
[/SIZE][/FONT][/SIZE][/FONT][FONT=Courier New][SIZE=4][COLOR=#008000][FONT=Courier New][SIZE=4][COLOR=#008000][FONT=Courier New][SIZE=4][COLOR=#008000]// sending data
[/COLOR][/SIZE][/FONT][/COLOR][/SIZE][/FONT][/COLOR][/SIZE][/FONT][FONT=Courier New][SIZE=4][FONT=Courier New][SIZE=4][/SIZE][/FONT][/SIZE][/FONT][FONT=Courier New][SIZE=4][COLOR=#0000ff][FONT=Courier New][SIZE=4][COLOR=#0000ff][FONT=Courier New][SIZE=4][COLOR=#0000ff]if[/COLOR][/SIZE][/FONT][/COLOR][/SIZE][/FONT][/COLOR][/SIZE][/FONT][FONT=Courier New][SIZE=4][FONT=Courier New][SIZE=4] ( ( number = send ( Socket,
pBuff,
BufLen,
0 ) ) == SOCKET_ERROR )
{
ErrorHandler();
[/SIZE][/FONT][/SIZE][/FONT][FONT=Courier New][SIZE=4][COLOR=#0000ff][FONT=Courier New][SIZE=4][COLOR=#0000ff][FONT=Courier New][SIZE=4][COLOR=#0000ff]return[/COLOR][/SIZE][/FONT][/COLOR][/SIZE][/FONT][/COLOR][/SIZE][/FONT][FONT=Courier New][SIZE=4][FONT=Courier New][SIZE=4] 0;
}
[/SIZE][/FONT][/SIZE][/FONT][FONT=Courier New][SIZE=4][COLOR=#0000ff][FONT=Courier New][SIZE=4][COLOR=#0000ff][FONT=Courier New][SIZE=4][COLOR=#0000ff]return[/COLOR][/SIZE][/FONT][/COLOR][/SIZE][/FONT][/COLOR][/SIZE][/FONT][FONT=Courier New][SIZE=4][FONT=Courier New][SIZE=4] number;
[/SIZE][/FONT][/SIZE][/FONT][FONT=Courier New][SIZE=4][COLOR=#008000][FONT=Courier New][SIZE=4][COLOR=#008000][FONT=Courier New][SIZE=4][COLOR=#008000]/*
int PASCAL FAR send (
IN SOCKET s,
IN const char FAR * buf,
IN int len,
IN int flags);
// send / receive flags:
FD_READ 0x01
FD_WRITE 0x02
FD_OOB 0x04
FD_ACCEPT 0x08
FD_CONNECT 0x10
FD_CLOSE 0x20
[/COLOR][/SIZE][/FONT][/COLOR][/SIZE][/FONT][/COLOR][/SIZE][/FONT][FONT=Courier New][SIZE=4][FONT=Courier New][SIZE=4][/SIZE][/FONT][/SIZE][/FONT][FONT=Courier New][SIZE=4][COLOR=#008000][FONT=Courier New][SIZE=4][COLOR=#008000][FONT=Courier New][SIZE=4][COLOR=#008000]*/
[/COLOR][/SIZE][/FONT][/COLOR][/SIZE][/FONT][/COLOR][/SIZE][/FONT][FONT=Courier New][SIZE=4][FONT=Courier New][SIZE=4]
} [/SIZE][/FONT][/SIZE][/FONT][FONT=Courier New][SIZE=4][COLOR=#008000][FONT=Courier New][SIZE=4][COLOR=#008000][FONT=Courier New][SIZE=4][COLOR=#008000]// end of function sendIrDASocket
[/COLOR][/SIZE][/FONT][/COLOR][/SIZE][/FONT][/COLOR][/SIZE][/FONT][FONT=Courier New][SIZE=4][FONT=Courier New][SIZE=4][/SIZE][/FONT][/SIZE][/FONT][FONT=Courier New][SIZE=4][COLOR=#0000ff][FONT=Courier New][SIZE=4][COLOR=#0000ff][FONT=Courier New][SIZE=4][COLOR=#0000ff]bool[/COLOR][/SIZE][/FONT][/COLOR][/SIZE][/FONT][/COLOR][/SIZE][/FONT][FONT=Courier New][SIZE=4][FONT=Courier New][SIZE=4] closeSocket ( SOCKET Socket )
{
[/SIZE][/FONT][/SIZE][/FONT][FONT=Courier New][SIZE=4][COLOR=#0000ff][FONT=Courier New][SIZE=4][COLOR=#0000ff][FONT=Courier New][SIZE=4][COLOR=#0000ff]if[/COLOR][/SIZE][/FONT][/COLOR][/SIZE][/FONT][/COLOR][/SIZE][/FONT][FONT=Courier New][SIZE=4][FONT=Courier New][SIZE=4] ( closesocket ( Socket ) == SOCKET_ERROR )
{
ErrorHandler();
[/SIZE][/FONT][/SIZE][/FONT][FONT=Courier New][SIZE=4][COLOR=#0000ff][FONT=Courier New][SIZE=4][COLOR=#0000ff][FONT=Courier New][SIZE=4][COLOR=#0000ff]return[/COLOR][/SIZE][/FONT][/COLOR][/SIZE][/FONT][/COLOR][/SIZE][/FONT][FONT=Courier New][SIZE=4][FONT=Courier New][SIZE=4] [/SIZE][/FONT][/SIZE][/FONT][FONT=Courier New][SIZE=4][COLOR=#0000ff][FONT=Courier New][SIZE=4][COLOR=#0000ff][FONT=Courier New][SIZE=4][COLOR=#0000ff]false[/COLOR][/SIZE][/FONT][/COLOR][/SIZE][/FONT][/COLOR][/SIZE][/FONT][FONT=Courier New][SIZE=4][FONT=Courier New][SIZE=4];
}
[/SIZE][/FONT][/SIZE][/FONT][FONT=Courier New][SIZE=4][COLOR=#0000ff][FONT=Courier New][SIZE=4][COLOR=#0000ff][FONT=Courier New][SIZE=4][COLOR=#0000ff]return[/COLOR][/SIZE][/FONT][/COLOR][/SIZE][/FONT][/COLOR][/SIZE][/FONT][FONT=Courier New][SIZE=4][FONT=Courier New][SIZE=4] [/SIZE][/FONT][/SIZE][/FONT][FONT=Courier New][SIZE=4][COLOR=#0000ff][FONT=Courier New][SIZE=4][COLOR=#0000ff][FONT=Courier New][SIZE=4][COLOR=#0000ff]true[/COLOR][/SIZE][/FONT][/COLOR][/SIZE][/FONT][/COLOR][/SIZE][/FONT][FONT=Courier New][SIZE=4][FONT=Courier New][SIZE=4];
}
[/SIZE][/FONT][/SIZE][/FONT][FONT=Courier New][SIZE=4][COLOR=#008000][FONT=Courier New][SIZE=4][COLOR=#008000][FONT=Courier New][SIZE=4][COLOR=#008000]// ErrorHandler Function
//
// get the errornumber of the last error and provide
// an appropriate errormessage
[/COLOR][/SIZE][/FONT][/COLOR][/SIZE][/FONT][/COLOR][/SIZE][/FONT][FONT=Courier New][SIZE=4][COLOR=#0000ff][FONT=Courier New][SIZE=4][COLOR=#0000ff][FONT=Courier New][SIZE=4][COLOR=#0000ff]int[/COLOR][/SIZE][/FONT][/COLOR][/SIZE][/FONT][/COLOR][/SIZE][/FONT][FONT=Courier New][SIZE=4][FONT=Courier New][SIZE=4] ErrorHandler ( [/SIZE][/FONT][/SIZE][/FONT][FONT=Courier New][SIZE=4][COLOR=#0000ff][FONT=Courier New][SIZE=4][COLOR=#0000ff][FONT=Courier New][SIZE=4][COLOR=#0000ff]void[/COLOR][/SIZE][/FONT][/COLOR][/SIZE][/FONT][/COLOR][/SIZE][/FONT][FONT=Courier New][SIZE=4][FONT=Courier New][SIZE=4] )
{
[/SIZE][/FONT][/SIZE][/FONT][FONT=Courier New][SIZE=4][COLOR=#0000ff][FONT=Courier New][SIZE=4][COLOR=#0000ff][FONT=Courier New][SIZE=4][COLOR=#0000ff]int[/COLOR][/SIZE][/FONT][/COLOR][/SIZE][/FONT][/COLOR][/SIZE][/FONT][FONT=Courier New][SIZE=4][FONT=Courier New][SIZE=4] error = WSAGetLastError();
[/SIZE][/FONT][/SIZE][/FONT][FONT=Courier New][SIZE=4][COLOR=#008000][FONT=Courier New][SIZE=4][COLOR=#008000][FONT=Courier New][SIZE=4][COLOR=#008000]// error dispatch
[/COLOR][/SIZE][/FONT][/COLOR][/SIZE][/FONT][/COLOR][/SIZE][/FONT][FONT=Courier New][SIZE=4][FONT=Courier New][SIZE=4][/SIZE][/FONT][/SIZE][/FONT][FONT=Courier New][SIZE=4][COLOR=#0000ff][FONT=Courier New][SIZE=4][COLOR=#0000ff][FONT=Courier New][SIZE=4][COLOR=#0000ff]switch[/COLOR][/SIZE][/FONT][/COLOR][/SIZE][/FONT][/COLOR][/SIZE][/FONT][FONT=Courier New][SIZE=4][FONT=Courier New][SIZE=4] ( error )
{
[/SIZE][/FONT][/SIZE][/FONT][FONT=Courier New][SIZE=4][COLOR=#0000ff][FONT=Courier New][SIZE=4][COLOR=#0000ff][FONT=Courier New][SIZE=4][COLOR=#0000ff]case[/COLOR][/SIZE][/FONT][/COLOR][/SIZE][/FONT][/COLOR][/SIZE][/FONT][FONT=Courier New][SIZE=4][FONT=Courier New][SIZE=4] SOCKET_ERROR:
{
[/SIZE][/FONT][/SIZE][/FONT][FONT=Courier New][SIZE=4][COLOR=#0000ff][FONT=Courier New][SIZE=4][COLOR=#0000ff][FONT=Courier New][SIZE=4][COLOR=#0000ff]break[/COLOR][/SIZE][/FONT][/COLOR][/SIZE][/FONT][/COLOR][/SIZE][/FONT][FONT=Courier New][SIZE=4][FONT=Courier New][SIZE=4];
}
[/SIZE][/FONT][/SIZE][/FONT][FONT=Courier New][SIZE=4][COLOR=#0000ff][FONT=Courier New][SIZE=4][COLOR=#0000ff][FONT=Courier New][SIZE=4][COLOR=#0000ff]case[/COLOR][/SIZE][/FONT][/COLOR][/SIZE][/FONT][/COLOR][/SIZE][/FONT][FONT=Courier New][SIZE=4][FONT=Courier New][SIZE=4] WSANOTINITIALISED:
{
[/SIZE][/FONT][/SIZE][/FONT][FONT=Courier New][SIZE=4][COLOR=#008000][FONT=Courier New][SIZE=4][COLOR=#008000][FONT=Courier New][SIZE=4][COLOR=#008000]// A successful WSAStartup call must occur before using this function.
[/COLOR][/SIZE][/FONT][/COLOR][/SIZE][/FONT][/COLOR][/SIZE][/FONT][FONT=Courier New][SIZE=4][FONT=Courier New][SIZE=4]MessageBoxA ( NULL,
[/SIZE][/FONT][/SIZE][/FONT][FONT=Courier New][SIZE=4][COLOR=#a31515][FONT=Courier New][SIZE=4][COLOR=#a31515][FONT=Courier New][SIZE=4][COLOR=#a31515]"WSAStartup failed"[/COLOR][/SIZE][/FONT][/COLOR][/SIZE][/FONT][/COLOR][/SIZE][/FONT][FONT=Courier New][SIZE=4][FONT=Courier New][SIZE=4],
[/SIZE][/FONT][/SIZE][/FONT][FONT=Courier New][SIZE=4][COLOR=#a31515][FONT=Courier New][SIZE=4][COLOR=#a31515][FONT=Courier New][SIZE=4][COLOR=#a31515]"Socket error"[/COLOR][/SIZE][/FONT][/COLOR][/SIZE][/FONT][/COLOR][/SIZE][/FONT][FONT=Courier New][SIZE=4][FONT=Courier New][SIZE=4], MB_OK );
[/SIZE][/FONT][/SIZE][/FONT][FONT=Courier New][SIZE=4][COLOR=#0000ff][FONT=Courier New][SIZE=4][COLOR=#0000ff][FONT=Courier New][SIZE=4][COLOR=#0000ff]break[/COLOR][/SIZE][/FONT][/COLOR][/SIZE][/FONT][/COLOR][/SIZE][/FONT][FONT=Courier New][SIZE=4][FONT=Courier New][SIZE=4];
}
[/SIZE][/FONT][/SIZE][/FONT][FONT=Courier New][SIZE=4][COLOR=#0000ff][FONT=Courier New][SIZE=4][COLOR=#0000ff][FONT=Courier New][SIZE=4][COLOR=#0000ff]case[/COLOR][/SIZE][/FONT][/COLOR][/SIZE][/FONT][/COLOR][/SIZE][/FONT][FONT=Courier New][SIZE=4][FONT=Courier New][SIZE=4] WSAENETDOWN:
{
[/SIZE][/FONT][/SIZE][/FONT][FONT=Courier New][SIZE=4][COLOR=#008000][FONT=Courier New][SIZE=4][COLOR=#008000][FONT=Courier New][SIZE=4][COLOR=#008000]// The network subsystem has failed.
[/COLOR][/SIZE][/FONT][/COLOR][/SIZE][/FONT][/COLOR][/SIZE][/FONT][FONT=Courier New][SIZE=4][FONT=Courier New][SIZE=4]MessageBoxA ( NULL,
[/SIZE][/FONT][/SIZE][/FONT][FONT=Courier New][SIZE=4][COLOR=#a31515][FONT=Courier New][SIZE=4][COLOR=#a31515][FONT=Courier New][SIZE=4][COLOR=#a31515]"Network failed"[/COLOR][/SIZE][/FONT][/COLOR][/SIZE][/FONT][/COLOR][/SIZE][/FONT][FONT=Courier New][SIZE=4][FONT=Courier New][SIZE=4],
[/SIZE][/FONT][/SIZE][/FONT][FONT=Courier New][SIZE=4][COLOR=#a31515][FONT=Courier New][SIZE=4][COLOR=#a31515][FONT=Courier New][SIZE=4][COLOR=#a31515]"Socket error"[/COLOR][/SIZE][/FONT][/COLOR][/SIZE][/FONT][/COLOR][/SIZE][/FONT][FONT=Courier New][SIZE=4][FONT=Courier New][SIZE=4], MB_OK );
[/SIZE][/FONT][/SIZE][/FONT][FONT=Courier New][SIZE=4][COLOR=#0000ff][FONT=Courier New][SIZE=4][COLOR=#0000ff][FONT=Courier New][SIZE=4][COLOR=#0000ff]break[/COLOR][/SIZE][/FONT][/COLOR][/SIZE][/FONT][/COLOR][/SIZE][/FONT][FONT=Courier New][SIZE=4][FONT=Courier New][SIZE=4];
}
[/SIZE][/FONT][/SIZE][/FONT][FONT=Courier New][SIZE=4][COLOR=#0000ff][FONT=Courier New][SIZE=4][COLOR=#0000ff][FONT=Courier New][SIZE=4][COLOR=#0000ff]case[/COLOR][/SIZE][/FONT][/COLOR][/SIZE][/FONT][/COLOR][/SIZE][/FONT][FONT=Courier New][SIZE=4][FONT=Courier New][SIZE=4] WSAEFAULT:
{
[/SIZE][/FONT][/SIZE][/FONT][FONT=Courier New][SIZE=4][COLOR=#008000][FONT=Courier New][SIZE=4][COLOR=#008000][FONT=Courier New][SIZE=4][COLOR=#008000]// The buf parameter is not completely contained in a valid
[/COLOR][/SIZE][/FONT][/COLOR][/SIZE][/FONT][/COLOR][/SIZE][/FONT][FONT=Courier New][SIZE=4][FONT=Courier New][SIZE=4][/SIZE][/FONT][/SIZE][/FONT][FONT=Courier New][SIZE=4][COLOR=#008000][FONT=Courier New][SIZE=4][COLOR=#008000][FONT=Courier New][SIZE=4][COLOR=#008000]// part of the user address space.
[/COLOR][/SIZE][/FONT][/COLOR][/SIZE][/FONT][/COLOR][/SIZE][/FONT][FONT=Courier New][SIZE=4][FONT=Courier New][SIZE=4]MessageBoxA ( NULL,
[/SIZE][/FONT][/SIZE][/FONT][FONT=Courier New][SIZE=4][COLOR=#a31515][FONT=Courier New][SIZE=4][COLOR=#a31515][FONT=Courier New][SIZE=4][COLOR=#a31515]"Buffer fault"[/COLOR][/SIZE][/FONT][/COLOR][/SIZE][/FONT][/COLOR][/SIZE][/FONT][FONT=Courier New][SIZE=4][FONT=Courier New][SIZE=4],
[/SIZE][/FONT][/SIZE][/FONT][FONT=Courier New][SIZE=4][COLOR=#a31515][FONT=Courier New][SIZE=4][COLOR=#a31515][FONT=Courier New][SIZE=4][COLOR=#a31515]"Socket error"[/COLOR][/SIZE][/FONT][/COLOR][/SIZE][/FONT][/COLOR][/SIZE][/FONT][FONT=Courier New][SIZE=4][FONT=Courier New][SIZE=4], MB_OK );
[/SIZE][/FONT][/SIZE][/FONT][FONT=Courier New][SIZE=4][COLOR=#0000ff][FONT=Courier New][SIZE=4][COLOR=#0000ff][FONT=Courier New][SIZE=4][COLOR=#0000ff]break[/COLOR][/SIZE][/FONT][/COLOR][/SIZE][/FONT][/COLOR][/SIZE][/FONT][FONT=Courier New][SIZE=4][FONT=Courier New][SIZE=4];
}
[/SIZE][/FONT][/SIZE][/FONT][FONT=Courier New][SIZE=4][COLOR=#0000ff][FONT=Courier New][SIZE=4][COLOR=#0000ff][FONT=Courier New][SIZE=4][COLOR=#0000ff]case[/COLOR][/SIZE][/FONT][/COLOR][/SIZE][/FONT][/COLOR][/SIZE][/FONT][FONT=Courier New][SIZE=4][FONT=Courier New][SIZE=4] WSAENOTCONN:
{
[/SIZE][/FONT][/SIZE][/FONT][FONT=Courier New][SIZE=4][COLOR=#008000][FONT=Courier New][SIZE=4][COLOR=#008000][FONT=Courier New][SIZE=4][COLOR=#008000]// The socket is not connected.
[/COLOR][/SIZE][/FONT][/COLOR][/SIZE][/FONT][/COLOR][/SIZE][/FONT][FONT=Courier New][SIZE=4][FONT=Courier New][SIZE=4]MessageBoxA ( NULL,
[/SIZE][/FONT][/SIZE][/FONT][FONT=Courier New][SIZE=4][COLOR=#a31515][FONT=Courier New][SIZE=4][COLOR=#a31515][FONT=Courier New][SIZE=4][COLOR=#a31515]"Socket not connected"[/COLOR][/SIZE][/FONT][/COLOR][/SIZE][/FONT][/COLOR][/SIZE][/FONT][FONT=Courier New][SIZE=4][FONT=Courier New][SIZE=4],
[/SIZE][/FONT][/SIZE][/FONT][FONT=Courier New][SIZE=4][COLOR=#a31515][FONT=Courier New][SIZE=4][COLOR=#a31515][FONT=Courier New][SIZE=4][COLOR=#a31515]"Socket error"[/COLOR][/SIZE][/FONT][/COLOR][/SIZE][/FONT][/COLOR][/SIZE][/FONT][FONT=Courier New][SIZE=4][FONT=Courier New][SIZE=4], MB_OK );
[/SIZE][/FONT][/SIZE][/FONT][FONT=Courier New][SIZE=4][COLOR=#0000ff][FONT=Courier New][SIZE=4][COLOR=#0000ff][FONT=Courier New][SIZE=4][COLOR=#0000ff]break[/COLOR][/SIZE][/FONT][/COLOR][/SIZE][/FONT][/COLOR][/SIZE][/FONT][FONT=Courier New][SIZE=4][FONT=Courier New][SIZE=4];
}
[/SIZE][/FONT][/SIZE][/FONT][FONT=Courier New][SIZE=4][COLOR=#0000ff][FONT=Courier New][SIZE=4][COLOR=#0000ff][FONT=Courier New][SIZE=4][COLOR=#0000ff]case[/COLOR][/SIZE][/FONT][/COLOR][/SIZE][/FONT][/COLOR][/SIZE][/FONT][FONT=Courier New][SIZE=4][FONT=Courier New][SIZE=4] WSAEINTR:
{
[/SIZE][/FONT][/SIZE][/FONT][FONT=Courier New][SIZE=4][COLOR=#008000][FONT=Courier New][SIZE=4][COLOR=#008000][FONT=Courier New][SIZE=4][COLOR=#008000]// The socket was closed.
[/COLOR][/SIZE][/FONT][/COLOR][/SIZE][/FONT][/COLOR][/SIZE][/FONT][FONT=Courier New][SIZE=4][FONT=Courier New][SIZE=4]MessageBoxA ( NULL,
[/SIZE][/FONT][/SIZE][/FONT][FONT=Courier New][SIZE=4][COLOR=#a31515][FONT=Courier New][SIZE=4][COLOR=#a31515][FONT=Courier New][SIZE=4][COLOR=#a31515]"Socket closed"[/COLOR][/SIZE][/FONT][/COLOR][/SIZE][/FONT][/COLOR][/SIZE][/FONT][FONT=Courier New][SIZE=4][FONT=Courier New][SIZE=4],
[/SIZE][/FONT][/SIZE][/FONT][FONT=Courier New][SIZE=4][COLOR=#a31515][FONT=Courier New][SIZE=4][COLOR=#a31515][FONT=Courier New][SIZE=4][COLOR=#a31515]"Socket error"[/COLOR][/SIZE][/FONT][/COLOR][/SIZE][/FONT][/COLOR][/SIZE][/FONT][FONT=Courier New][SIZE=4][FONT=Courier New][SIZE=4], MB_OK );
[/SIZE][/FONT][/SIZE][/FONT][FONT=Courier New][SIZE=4][COLOR=#0000ff][FONT=Courier New][SIZE=4][COLOR=#0000ff][FONT=Courier New][SIZE=4][COLOR=#0000ff]break[/COLOR][/SIZE][/FONT][/COLOR][/SIZE][/FONT][/COLOR][/SIZE][/FONT][FONT=Courier New][SIZE=4][FONT=Courier New][SIZE=4];
}
[/SIZE][/FONT][/SIZE][/FONT][FONT=Courier New][SIZE=4][COLOR=#0000ff][FONT=Courier New][SIZE=4][COLOR=#0000ff][FONT=Courier New][SIZE=4][COLOR=#0000ff]case[/COLOR][/SIZE][/FONT][/COLOR][/SIZE][/FONT][/COLOR][/SIZE][/FONT][FONT=Courier New][SIZE=4][FONT=Courier New][SIZE=4] WSAEINPROGRESS:
{
[/SIZE][/FONT][/SIZE][/FONT][FONT=Courier New][SIZE=4][COLOR=#008000][FONT=Courier New][SIZE=4][COLOR=#008000][FONT=Courier New][SIZE=4][COLOR=#008000]// A blocking Winsock call is in progress, or the service
[/COLOR][/SIZE][/FONT][/COLOR][/SIZE][/FONT][/COLOR][/SIZE][/FONT][FONT=Courier New][SIZE=4][FONT=Courier New][SIZE=4][/SIZE][/FONT][/SIZE][/FONT][FONT=Courier New][SIZE=4][COLOR=#008000][FONT=Courier New][SIZE=4][COLOR=#008000][FONT=Courier New][SIZE=4][COLOR=#008000]// provider is still processing a callback function.
[/COLOR][/SIZE][/FONT][/COLOR][/SIZE][/FONT][/COLOR][/SIZE][/FONT][FONT=Courier New][SIZE=4][FONT=Courier New][SIZE=4]MessageBoxA ( NULL,
[/SIZE][/FONT][/SIZE][/FONT][FONT=Courier New][SIZE=4][COLOR=#a31515][FONT=Courier New][SIZE=4][COLOR=#a31515][FONT=Courier New][SIZE=4][COLOR=#a31515]"Socket busy"[/COLOR][/SIZE][/FONT][/COLOR][/SIZE][/FONT][/COLOR][/SIZE][/FONT][FONT=Courier New][SIZE=4][FONT=Courier New][SIZE=4],
[/SIZE][/FONT][/SIZE][/FONT][FONT=Courier New][SIZE=4][COLOR=#a31515][FONT=Courier New][SIZE=4][COLOR=#a31515][FONT=Courier New][SIZE=4][COLOR=#a31515]"Socket error"[/COLOR][/SIZE][/FONT][/COLOR][/SIZE][/FONT][/COLOR][/SIZE][/FONT][FONT=Courier New][SIZE=4][FONT=Courier New][SIZE=4], MB_OK );
[/SIZE][/FONT][/SIZE][/FONT][FONT=Courier New][SIZE=4][COLOR=#0000ff][FONT=Courier New][SIZE=4][COLOR=#0000ff][FONT=Courier New][SIZE=4][COLOR=#0000ff]break[/COLOR][/SIZE][/FONT][/COLOR][/SIZE][/FONT][/COLOR][/SIZE][/FONT][FONT=Courier New][SIZE=4][FONT=Courier New][SIZE=4];
}
[/SIZE][/FONT][/SIZE][/FONT][FONT=Courier New][SIZE=4][COLOR=#0000ff][FONT=Courier New][SIZE=4][COLOR=#0000ff][FONT=Courier New][SIZE=4][COLOR=#0000ff]case[/COLOR][/SIZE][/FONT][/COLOR][/SIZE][/FONT][/COLOR][/SIZE][/FONT][FONT=Courier New][SIZE=4][FONT=Courier New][SIZE=4] WSAENETRESET:
{
[/SIZE][/FONT][/SIZE][/FONT][FONT=Courier New][SIZE=4][COLOR=#008000][FONT=Courier New][SIZE=4][COLOR=#008000][FONT=Courier New][SIZE=4][COLOR=#008000]// The connection has been broken due to the keep-alive
[/COLOR][/SIZE][/FONT][/COLOR][/SIZE][/FONT][/COLOR][/SIZE][/FONT][FONT=Courier New][SIZE=4][FONT=Courier New][SIZE=4][/SIZE][/FONT][/SIZE][/FONT][FONT=Courier New][SIZE=4][COLOR=#008000][FONT=Courier New][SIZE=4][COLOR=#008000][FONT=Courier New][SIZE=4][COLOR=#008000]// activity detecting a failure while the operation was in progress.
[/COLOR][/SIZE][/FONT][/COLOR][/SIZE][/FONT][/COLOR][/SIZE][/FONT][FONT=Courier New][SIZE=4][FONT=Courier New][SIZE=4]MessageBoxA ( NULL,
[/SIZE][/FONT][/SIZE][/FONT][FONT=Courier New][SIZE=4][COLOR=#a31515][FONT=Courier New][SIZE=4][COLOR=#a31515][FONT=Courier New][SIZE=4][COLOR=#a31515]"Connection broken"[/COLOR][/SIZE][/FONT][/COLOR][/SIZE][/FONT][/COLOR][/SIZE][/FONT][FONT=Courier New][SIZE=4][FONT=Courier New][SIZE=4],
[/SIZE][/FONT][/SIZE][/FONT][FONT=Courier New][SIZE=4][COLOR=#a31515][FONT=Courier New][SIZE=4][COLOR=#a31515][FONT=Courier New][SIZE=4][COLOR=#a31515]"Socket error"[/COLOR][/SIZE][/FONT][/COLOR][/SIZE][/FONT][/COLOR][/SIZE][/FONT][FONT=Courier New][SIZE=4][FONT=Courier New][SIZE=4], MB_OK );
[/SIZE][/FONT][/SIZE][/FONT][FONT=Courier New][SIZE=4][COLOR=#0000ff][FONT=Courier New][SIZE=4][COLOR=#0000ff][FONT=Courier New][SIZE=4][COLOR=#0000ff]break[/COLOR][/SIZE][/FONT][/COLOR][/SIZE][/FONT][/COLOR][/SIZE][/FONT][FONT=Courier New][SIZE=4][FONT=Courier New][SIZE=4];
}
[/SIZE][/FONT][/SIZE][/FONT][FONT=Courier New][SIZE=4][COLOR=#0000ff][FONT=Courier New][SIZE=4][COLOR=#0000ff][FONT=Courier New][SIZE=4][COLOR=#0000ff]case[/COLOR][/SIZE][/FONT][/COLOR][/SIZE][/FONT][/COLOR][/SIZE][/FONT][FONT=Courier New][SIZE=4][FONT=Courier New][SIZE=4] WSAENOTSOCK:
{
[/SIZE][/FONT][/SIZE][/FONT][FONT=Courier New][SIZE=4][COLOR=#008000][FONT=Courier New][SIZE=4][COLOR=#008000][FONT=Courier New][SIZE=4][COLOR=#008000]// The descriptor is not a socket.
[/COLOR][/SIZE][/FONT][/COLOR][/SIZE][/FONT][/COLOR][/SIZE][/FONT][FONT=Courier New][SIZE=4][FONT=Courier New][SIZE=4]MessageBoxA ( NULL,
[/SIZE][/FONT][/SIZE][/FONT][FONT=Courier New][SIZE=4][COLOR=#a31515][FONT=Courier New][SIZE=4][COLOR=#a31515][FONT=Courier New][SIZE=4][COLOR=#a31515]"invalid Socket"[/COLOR][/SIZE][/FONT][/COLOR][/SIZE][/FONT][/COLOR][/SIZE][/FONT][FONT=Courier New][SIZE=4][FONT=Courier New][SIZE=4],
[/SIZE][/FONT][/SIZE][/FONT][FONT=Courier New][SIZE=4][COLOR=#a31515][FONT=Courier New][SIZE=4][COLOR=#a31515][FONT=Courier New][SIZE=4][COLOR=#a31515]"Socket error"[/COLOR][/SIZE][/FONT][/COLOR][/SIZE][/FONT][/COLOR][/SIZE][/FONT][FONT=Courier New][SIZE=4][FONT=Courier New][SIZE=4], MB_OK );
[/SIZE][/FONT][/SIZE][/FONT][FONT=Courier New][SIZE=4][COLOR=#0000ff][FONT=Courier New][SIZE=4][COLOR=#0000ff][FONT=Courier New][SIZE=4][COLOR=#0000ff]break[/COLOR][/SIZE][/FONT][/COLOR][/SIZE][/FONT][/COLOR][/SIZE][/FONT][FONT=Courier New][SIZE=4][FONT=Courier New][SIZE=4];
}
[/SIZE][/FONT][/SIZE][/FONT][FONT=Courier New][SIZE=4][COLOR=#0000ff][FONT=Courier New][SIZE=4][COLOR=#0000ff][FONT=Courier New][SIZE=4][COLOR=#0000ff]case[/COLOR][/SIZE][/FONT][/COLOR][/SIZE][/FONT][/COLOR][/SIZE][/FONT][FONT=Courier New][SIZE=4][FONT=Courier New][SIZE=4] WSAEOPNOTSUPP:
{
[/SIZE][/FONT][/SIZE][/FONT][FONT=Courier New][SIZE=4][COLOR=#008000][FONT=Courier New][SIZE=4][COLOR=#008000][FONT=Courier New][SIZE=4][COLOR=#008000]// MSG_OOB was specified, but the socket is not stream
[/COLOR][/SIZE][/FONT][/COLOR][/SIZE][/FONT][/COLOR][/SIZE][/FONT][FONT=Courier New][SIZE=4][FONT=Courier New][SIZE=4][/SIZE][/FONT][/SIZE][/FONT][FONT=Courier New][SIZE=4][COLOR=#008000][FONT=Courier New][SIZE=4][COLOR=#008000][FONT=Courier New][SIZE=4][COLOR=#008000]// style such as type SOCK_STREAM, out of band (OOB)
[/COLOR][/SIZE][/FONT][/COLOR][/SIZE][/FONT][/COLOR][/SIZE][/FONT][FONT=Courier New][SIZE=4][FONT=Courier New][SIZE=4][/SIZE][/FONT][/SIZE][/FONT][FONT=Courier New][SIZE=4][COLOR=#008000][FONT=Courier New][SIZE=4][COLOR=#008000][FONT=Courier New][SIZE=4][COLOR=#008000]// data is not supported in the communication domain
[/COLOR][/SIZE][/FONT][/COLOR][/SIZE][/FONT][/COLOR][/SIZE][/FONT][FONT=Courier New][SIZE=4][FONT=Courier New][SIZE=4][/SIZE][/FONT][/SIZE][/FONT][FONT=Courier New][SIZE=4][COLOR=#008000][FONT=Courier New][SIZE=4][COLOR=#008000][FONT=Courier New][SIZE=4][COLOR=#008000]// associated with this socket, or the socket is
[/COLOR][/SIZE][/FONT][/COLOR][/SIZE][/FONT][/COLOR][/SIZE][/FONT][FONT=Courier New][SIZE=4][FONT=Courier New][SIZE=4][/SIZE][/FONT][/SIZE][/FONT][FONT=Courier New][SIZE=4][COLOR=#008000][FONT=Courier New][SIZE=4][COLOR=#008000][FONT=Courier New][SIZE=4][COLOR=#008000]// unidirectional and supports only send operations.
[/COLOR][/SIZE][/FONT][/COLOR][/SIZE][/FONT][/COLOR][/SIZE][/FONT][FONT=Courier New][SIZE=4][FONT=Courier New][SIZE=4]MessageBoxA ( NULL,
[/SIZE][/FONT][/SIZE][/FONT][FONT=Courier New][SIZE=4][COLOR=#a31515][FONT=Courier New][SIZE=4][COLOR=#a31515][FONT=Courier New][SIZE=4][COLOR=#a31515]"OOB not supported"[/COLOR][/SIZE][/FONT][/COLOR][/SIZE][/FONT][/COLOR][/SIZE][/FONT][FONT=Courier New][SIZE=4][FONT=Courier New][SIZE=4],
[/SIZE][/FONT][/SIZE][/FONT][FONT=Courier New][SIZE=4][COLOR=#a31515][FONT=Courier New][SIZE=4][COLOR=#a31515][FONT=Courier New][SIZE=4][COLOR=#a31515]"Socket error"[/COLOR][/SIZE][/FONT][/COLOR][/SIZE][/FONT][/COLOR][/SIZE][/FONT][FONT=Courier New][SIZE=4][FONT=Courier New][SIZE=4], MB_OK );
[/SIZE][/FONT][/SIZE][/FONT][FONT=Courier New][SIZE=4][COLOR=#0000ff][FONT=Courier New][SIZE=4][COLOR=#0000ff][FONT=Courier New][SIZE=4][COLOR=#0000ff]break[/COLOR][/SIZE][/FONT][/COLOR][/SIZE][/FONT][/COLOR][/SIZE][/FONT][FONT=Courier New][SIZE=4][FONT=Courier New][SIZE=4];
}
[/SIZE][/FONT][/SIZE][/FONT][FONT=Courier New][SIZE=4][COLOR=#0000ff][FONT=Courier New][SIZE=4][COLOR=#0000ff][FONT=Courier New][SIZE=4][COLOR=#0000ff]case[/COLOR][/SIZE][/FONT][/COLOR][/SIZE][/FONT][/COLOR][/SIZE][/FONT][FONT=Courier New][SIZE=4][FONT=Courier New][SIZE=4] WSAESHUTDOWN:
{
[/SIZE][/FONT][/SIZE][/FONT][FONT=Courier New][SIZE=4][COLOR=#008000][FONT=Courier New][SIZE=4][COLOR=#008000][FONT=Courier New][SIZE=4][COLOR=#008000]// The socket has been shut down; it is not possible
[/COLOR][/SIZE][/FONT][/COLOR][/SIZE][/FONT][/COLOR][/SIZE][/FONT][FONT=Courier New][SIZE=4][FONT=Courier New][SIZE=4][/SIZE][/FONT][/SIZE][/FONT][FONT=Courier New][SIZE=4][COLOR=#008000][FONT=Courier New][SIZE=4][COLOR=#008000][FONT=Courier New][SIZE=4][COLOR=#008000]// to receive on a socket after shutdown has been
[/COLOR][/SIZE][/FONT][/COLOR][/SIZE][/FONT][/COLOR][/SIZE][/FONT][FONT=Courier New][SIZE=4][FONT=Courier New][SIZE=4][/SIZE][/FONT][/SIZE][/FONT][FONT=Courier New][SIZE=4][COLOR=#008000][FONT=Courier New][SIZE=4][COLOR=#008000][FONT=Courier New][SIZE=4][COLOR=#008000]// invoked with how set to SD_RECEIVE or SD_BOTH.
[/COLOR][/SIZE][/FONT][/COLOR][/SIZE][/FONT][/COLOR][/SIZE][/FONT][FONT=Courier New][SIZE=4][FONT=Courier New][SIZE=4]MessageBoxA ( NULL,
[/SIZE][/FONT][/SIZE][/FONT][FONT=Courier New][SIZE=4][COLOR=#a31515][FONT=Courier New][SIZE=4][COLOR=#a31515][FONT=Courier New][SIZE=4][COLOR=#a31515]"Socket has been shut down"[/COLOR][/SIZE][/FONT][/COLOR][/SIZE][/FONT][/COLOR][/SIZE][/FONT][FONT=Courier New][SIZE=4][FONT=Courier New][SIZE=4],
[/SIZE][/FONT][/SIZE][/FONT][FONT=Courier New][SIZE=4][COLOR=#a31515][FONT=Courier New][SIZE=4][COLOR=#a31515][FONT=Courier New][SIZE=4][COLOR=#a31515]"Socket error"[/COLOR][/SIZE][/FONT][/COLOR][/SIZE][/FONT][/COLOR][/SIZE][/FONT][FONT=Courier New][SIZE=4][FONT=Courier New][SIZE=4], MB_OK );
[/SIZE][/FONT][/SIZE][/FONT][FONT=Courier New][SIZE=4][COLOR=#0000ff][FONT=Courier New][SIZE=4][COLOR=#0000ff][FONT=Courier New][SIZE=4][COLOR=#0000ff]break[/COLOR][/SIZE][/FONT][/COLOR][/SIZE][/FONT][/COLOR][/SIZE][/FONT][FONT=Courier New][SIZE=4][FONT=Courier New][SIZE=4];
}
[/SIZE][/FONT][/SIZE][/FONT][FONT=Courier New][SIZE=4][COLOR=#0000ff][FONT=Courier New][SIZE=4][COLOR=#0000ff][FONT=Courier New][SIZE=4][COLOR=#0000ff]case[/COLOR][/SIZE][/FONT][/COLOR][/SIZE][/FONT][/COLOR][/SIZE][/FONT][FONT=Courier New][SIZE=4][FONT=Courier New][SIZE=4] WSAEWOULDBLOCK:
{
[/SIZE][/FONT][/SIZE][/FONT][FONT=Courier New][SIZE=4][COLOR=#008000][FONT=Courier New][SIZE=4][COLOR=#008000][FONT=Courier New][SIZE=4][COLOR=#008000]// The socket is marked as nonblocking and the
[/COLOR][/SIZE][/FONT][/COLOR][/SIZE][/FONT][/COLOR][/SIZE][/FONT][FONT=Courier New][SIZE=4][FONT=Courier New][SIZE=4][/SIZE][/FONT][/SIZE][/FONT][FONT=Courier New][SIZE=4][COLOR=#008000][FONT=Courier New][SIZE=4][COLOR=#008000][FONT=Courier New][SIZE=4][COLOR=#008000]// receive operation would block.
[/COLOR][/SIZE][/FONT][/COLOR][/SIZE][/FONT][/COLOR][/SIZE][/FONT][FONT=Courier New][SIZE=4][FONT=Courier New][SIZE=4]MessageBoxA ( NULL,
[/SIZE][/FONT][/SIZE][/FONT][FONT=Courier New][SIZE=4][COLOR=#a31515][FONT=Courier New][SIZE=4][COLOR=#a31515][FONT=Courier New][SIZE=4][COLOR=#a31515]"blocking disabled"[/COLOR][/SIZE][/FONT][/COLOR][/SIZE][/FONT][/COLOR][/SIZE][/FONT][FONT=Courier New][SIZE=4][FONT=Courier New][SIZE=4],
[/SIZE][/FONT][/SIZE][/FONT][FONT=Courier New][SIZE=4][COLOR=#a31515][FONT=Courier New][SIZE=4][COLOR=#a31515][FONT=Courier New][SIZE=4][COLOR=#a31515]"Socket error"[/COLOR][/SIZE][/FONT][/COLOR][/SIZE][/FONT][/COLOR][/SIZE][/FONT][FONT=Courier New][SIZE=4][FONT=Courier New][SIZE=4], MB_OK );
[/SIZE][/FONT][/SIZE][/FONT][FONT=Courier New][SIZE=4][COLOR=#0000ff][FONT=Courier New][SIZE=4][COLOR=#0000ff][FONT=Courier New][SIZE=4][COLOR=#0000ff]break[/COLOR][/SIZE][/FONT][/COLOR][/SIZE][/FONT][/COLOR][/SIZE][/FONT][FONT=Courier New][SIZE=4][FONT=Courier New][SIZE=4];
}
[/SIZE][/FONT][/SIZE][/FONT][FONT=Courier New][SIZE=4][COLOR=#0000ff][FONT=Courier New][SIZE=4][COLOR=#0000ff][FONT=Courier New][SIZE=4][COLOR=#0000ff]case[/COLOR][/SIZE][/FONT][/COLOR][/SIZE][/FONT][/COLOR][/SIZE][/FONT][FONT=Courier New][SIZE=4][FONT=Courier New][SIZE=4] WSAEMSGSIZE:
{
[/SIZE][/FONT][/SIZE][/FONT][FONT=Courier New][SIZE=4][COLOR=#008000][FONT=Courier New][SIZE=4][COLOR=#008000][FONT=Courier New][SIZE=4][COLOR=#008000]// The message was too large to fit into the
[/COLOR][/SIZE][/FONT][/COLOR][/SIZE][/FONT][/COLOR][/SIZE][/FONT][FONT=Courier New][SIZE=4][FONT=Courier New][SIZE=4][/SIZE][/FONT][/SIZE][/FONT][FONT=Courier New][SIZE=4][COLOR=#008000][FONT=Courier New][SIZE=4][COLOR=#008000][FONT=Courier New][SIZE=4][COLOR=#008000]// specified buffer and was truncated.
[/COLOR][/SIZE][/FONT][/COLOR][/SIZE][/FONT][/COLOR][/SIZE][/FONT][FONT=Courier New][SIZE=4][FONT=Courier New][SIZE=4]MessageBoxA ( NULL,
[/SIZE][/FONT][/SIZE][/FONT][FONT=Courier New][SIZE=4][COLOR=#a31515][FONT=Courier New][SIZE=4][COLOR=#a31515][FONT=Courier New][SIZE=4][COLOR=#a31515]"Message too large"[/COLOR][/SIZE][/FONT][/COLOR][/SIZE][/FONT][/COLOR][/SIZE][/FONT][FONT=Courier New][SIZE=4][FONT=Courier New][SIZE=4],
[/SIZE][/FONT][/SIZE][/FONT][FONT=Courier New][SIZE=4][COLOR=#a31515][FONT=Courier New][SIZE=4][COLOR=#a31515][FONT=Courier New][SIZE=4][COLOR=#a31515]"Socket error"[/COLOR][/SIZE][/FONT][/COLOR][/SIZE][/FONT][/COLOR][/SIZE][/FONT][FONT=Courier New][SIZE=4][FONT=Courier New][SIZE=4], MB_OK );
[/SIZE][/FONT][/SIZE][/FONT][FONT=Courier New][SIZE=4][COLOR=#0000ff][FONT=Courier New][SIZE=4][COLOR=#0000ff][FONT=Courier New][SIZE=4][COLOR=#0000ff]break[/COLOR][/SIZE][/FONT][/COLOR][/SIZE][/FONT][/COLOR][/SIZE][/FONT][FONT=Courier New][SIZE=4][FONT=Courier New][SIZE=4];
}
[/SIZE][/FONT][/SIZE][/FONT][FONT=Courier New][SIZE=4][COLOR=#0000ff][FONT=Courier New][SIZE=4][COLOR=#0000ff][FONT=Courier New][SIZE=4][COLOR=#0000ff]case[/COLOR][/SIZE][/FONT][/COLOR][/SIZE][/FONT][/COLOR][/SIZE][/FONT][FONT=Courier New][SIZE=4][FONT=Courier New][SIZE=4] WSAEINVAL:
{
[/SIZE][/FONT][/SIZE][/FONT][FONT=Courier New][SIZE=4][COLOR=#008000][FONT=Courier New][SIZE=4][COLOR=#008000][FONT=Courier New][SIZE=4][COLOR=#008000]// The socket has not been bound with bind
[/COLOR][/SIZE][/FONT][/COLOR][/SIZE][/FONT][/COLOR][/SIZE][/FONT][FONT=Courier New][SIZE=4][FONT=Courier New][SIZE=4][/SIZE][/FONT][/SIZE][/FONT][FONT=Courier New][SIZE=4][COLOR=#008000][FONT=Courier New][SIZE=4][COLOR=#008000][FONT=Courier New][SIZE=4][COLOR=#008000]// (Windows Sockets), an unknown flag was
[/COLOR][/SIZE][/FONT][/COLOR][/SIZE][/FONT][/COLOR][/SIZE][/FONT][FONT=Courier New][SIZE=4][FONT=Courier New][SIZE=4][/SIZE][/FONT][/SIZE][/FONT][FONT=Courier New][SIZE=4][COLOR=#008000][FONT=Courier New][SIZE=4][COLOR=#008000][FONT=Courier New][SIZE=4][COLOR=#008000]// specified, MSG_OOB was specified for a
[/COLOR][/SIZE][/FONT][/COLOR][/SIZE][/FONT][/COLOR][/SIZE][/FONT][FONT=Courier New][SIZE=4][FONT=Courier New][SIZE=4][/SIZE][/FONT][/SIZE][/FONT][FONT=Courier New][SIZE=4][COLOR=#008000][FONT=Courier New][SIZE=4][COLOR=#008000][FONT=Courier New][SIZE=4][COLOR=#008000]// socket with SO_OOBINLINE enabled, or
[/COLOR][/SIZE][/FONT][/COLOR][/SIZE][/FONT][/COLOR][/SIZE][/FONT][FONT=Courier New][SIZE=4][FONT=Courier New][SIZE=4][/SIZE][/FONT][/SIZE][/FONT][FONT=Courier New][SIZE=4][COLOR=#008000][FONT=Courier New][SIZE=4][COLOR=#008000][FONT=Courier New][SIZE=4][COLOR=#008000]// (for byte stream sockets only)
[/COLOR][/SIZE][/FONT][/COLOR][/SIZE][/FONT][/COLOR][/SIZE][/FONT][FONT=Courier New][SIZE=4][FONT=Courier New][SIZE=4][/SIZE][/FONT][/SIZE][/FONT][FONT=Courier New][SIZE=4][COLOR=#008000][FONT=Courier New][SIZE=4][COLOR=#008000][FONT=Courier New][SIZE=4][COLOR=#008000]// len was zero or negative.
[/COLOR][/SIZE][/FONT][/COLOR][/SIZE][/FONT][/COLOR][/SIZE][/FONT][FONT=Courier New][SIZE=4][FONT=Courier New][SIZE=4]MessageBoxA ( NULL,
[/SIZE][/FONT][/SIZE][/FONT][FONT=Courier New][SIZE=4][COLOR=#a31515][FONT=Courier New][SIZE=4][COLOR=#a31515][FONT=Courier New][SIZE=4][COLOR=#a31515]"Socket unbound or invalid Flag"[/COLOR][/SIZE][/FONT][/COLOR][/SIZE][/FONT][/COLOR][/SIZE][/FONT][FONT=Courier New][SIZE=4][FONT=Courier New][SIZE=4],
[/SIZE][/FONT][/SIZE][/FONT][FONT=Courier New][SIZE=4][COLOR=#a31515][FONT=Courier New][SIZE=4][COLOR=#a31515][FONT=Courier New][SIZE=4][COLOR=#a31515]"Socket error"[/COLOR][/SIZE][/FONT][/COLOR][/SIZE][/FONT][/COLOR][/SIZE][/FONT][FONT=Courier New][SIZE=4][FONT=Courier New][SIZE=4], MB_OK );
[/SIZE][/FONT][/SIZE][/FONT][FONT=Courier New][SIZE=4][COLOR=#0000ff][FONT=Courier New][SIZE=4][COLOR=#0000ff][FONT=Courier New][SIZE=4][COLOR=#0000ff]break[/COLOR][/SIZE][/FONT][/COLOR][/SIZE][/FONT][/COLOR][/SIZE][/FONT][FONT=Courier New][SIZE=4][FONT=Courier New][SIZE=4];
}
[/SIZE][/FONT][/SIZE][/FONT][FONT=Courier New][SIZE=4][COLOR=#0000ff][FONT=Courier New][SIZE=4][COLOR=#0000ff][FONT=Courier New][SIZE=4][COLOR=#0000ff]case[/COLOR][/SIZE][/FONT][/COLOR][/SIZE][/FONT][/COLOR][/SIZE][/FONT][FONT=Courier New][SIZE=4][FONT=Courier New][SIZE=4] WSAECONNABORTED:
{
[/SIZE][/FONT][/SIZE][/FONT][FONT=Courier New][SIZE=4][COLOR=#008000][FONT=Courier New][SIZE=4][COLOR=#008000][FONT=Courier New][SIZE=4][COLOR=#008000]// The virtual circuit was terminated due to a
[/COLOR][/SIZE][/FONT][/COLOR][/SIZE][/FONT][/COLOR][/SIZE][/FONT][FONT=Courier New][SIZE=4][FONT=Courier New][SIZE=4][/SIZE][/FONT][/SIZE][/FONT][FONT=Courier New][SIZE=4][COLOR=#008000][FONT=Courier New][SIZE=4][COLOR=#008000][FONT=Courier New][SIZE=4][COLOR=#008000]// time-out or other failure. The application
[/COLOR][/SIZE][/FONT][/COLOR][/SIZE][/FONT][/COLOR][/SIZE][/FONT][FONT=Courier New][SIZE=4][FONT=Courier New][SIZE=4][/SIZE][/FONT][/SIZE][/FONT][FONT=Courier New][SIZE=4][COLOR=#008000][FONT=Courier New][SIZE=4][COLOR=#008000][FONT=Courier New][SIZE=4][COLOR=#008000]// should close the socket as it is no longer usable.
[/COLOR][/SIZE][/FONT][/COLOR][/SIZE][/FONT][/COLOR][/SIZE][/FONT][FONT=Courier New][SIZE=4][FONT=Courier New][SIZE=4]MessageBoxA ( NULL,
[/SIZE][/FONT][/SIZE][/FONT][FONT=Courier New][SIZE=4][COLOR=#a31515][FONT=Courier New][SIZE=4][COLOR=#a31515][FONT=Courier New][SIZE=4][COLOR=#a31515]"Socket terminated"[/COLOR][/SIZE][/FONT][/COLOR][/SIZE][/FONT][/COLOR][/SIZE][/FONT][FONT=Courier New][SIZE=4][FONT=Courier New][SIZE=4],
[/SIZE][/FONT][/SIZE][/FONT][FONT=Courier New][SIZE=4][COLOR=#a31515][FONT=Courier New][SIZE=4][COLOR=#a31515][FONT=Courier New][SIZE=4][COLOR=#a31515]"Socket error"[/COLOR][/SIZE][/FONT][/COLOR][/SIZE][/FONT][/COLOR][/SIZE][/FONT][FONT=Courier New][SIZE=4][FONT=Courier New][SIZE=4], MB_OK );
[/SIZE][/FONT][/SIZE][/FONT][FONT=Courier New][SIZE=4][COLOR=#0000ff][FONT=Courier New][SIZE=4][COLOR=#0000ff][FONT=Courier New][SIZE=4][COLOR=#0000ff]break[/COLOR][/SIZE][/FONT][/COLOR][/SIZE][/FONT][/COLOR][/SIZE][/FONT][FONT=Courier New][SIZE=4][FONT=Courier New][SIZE=4];
}
[/SIZE][/FONT][/SIZE][/FONT][FONT=Courier New][SIZE=4][COLOR=#0000ff][FONT=Courier New][SIZE=4][COLOR=#0000ff][FONT=Courier New][SIZE=4][COLOR=#0000ff]case[/COLOR][/SIZE][/FONT][/COLOR][/SIZE][/FONT][/COLOR][/SIZE][/FONT][FONT=Courier New][SIZE=4][FONT=Courier New][SIZE=4] WSAETIMEDOUT:
{
[/SIZE][/FONT][/SIZE][/FONT][FONT=Courier New][SIZE=4][COLOR=#008000][FONT=Courier New][SIZE=4][COLOR=#008000][FONT=Courier New][SIZE=4][COLOR=#008000]// The connection has been dropped because of
[/COLOR][/SIZE][/FONT][/COLOR][/SIZE][/FONT][/COLOR][/SIZE][/FONT][FONT=Courier New][SIZE=4][FONT=Courier New][SIZE=4][/SIZE][/FONT][/SIZE][/FONT][FONT=Courier New][SIZE=4][COLOR=#008000][FONT=Courier New][SIZE=4][COLOR=#008000][FONT=Courier New][SIZE=4][COLOR=#008000]// a network failure or because the peer system
[/COLOR][/SIZE][/FONT][/COLOR][/SIZE][/FONT][/COLOR][/SIZE][/FONT][FONT=Courier New][SIZE=4][FONT=Courier New][SIZE=4][/SIZE][/FONT][/SIZE][/FONT][FONT=Courier New][SIZE=4][COLOR=#008000][FONT=Courier New][SIZE=4][COLOR=#008000][FONT=Courier New][SIZE=4][COLOR=#008000]// failed to respond.
[/COLOR][/SIZE][/FONT][/COLOR][/SIZE][/FONT][/COLOR][/SIZE][/FONT][FONT=Courier New][SIZE=4][FONT=Courier New][SIZE=4]MessageBoxA ( NULL,
[/SIZE][/FONT][/SIZE][/FONT][FONT=Courier New][SIZE=4][COLOR=#a31515][FONT=Courier New][SIZE=4][COLOR=#a31515][FONT=Courier New][SIZE=4][COLOR=#a31515]"Connection dropped"[/COLOR][/SIZE][/FONT][/COLOR][/SIZE][/FONT][/COLOR][/SIZE][/FONT][FONT=Courier New][SIZE=4][FONT=Courier New][SIZE=4],
[/SIZE][/FONT][/SIZE][/FONT][FONT=Courier New][SIZE=4][COLOR=#a31515][FONT=Courier New][SIZE=4][COLOR=#a31515][FONT=Courier New][SIZE=4][COLOR=#a31515]"Socket error"[/COLOR][/SIZE][/FONT][/COLOR][/SIZE][/FONT][/COLOR][/SIZE][/FONT][FONT=Courier New][SIZE=4][FONT=Courier New][SIZE=4], MB_OK );
[/SIZE][/FONT][/SIZE][/FONT][FONT=Courier New][SIZE=4][COLOR=#0000ff][FONT=Courier New][SIZE=4][COLOR=#0000ff][FONT=Courier New][SIZE=4][COLOR=#0000ff]break[/COLOR][/SIZE][/FONT][/COLOR][/SIZE][/FONT][/COLOR][/SIZE][/FONT][FONT=Courier New][SIZE=4][FONT=Courier New][SIZE=4];
}
[/SIZE][/FONT][/SIZE][/FONT][FONT=Courier New][SIZE=4][COLOR=#0000ff][FONT=Courier New][SIZE=4][COLOR=#0000ff][FONT=Courier New][SIZE=4][COLOR=#0000ff]case[/COLOR][/SIZE][/FONT][/COLOR][/SIZE][/FONT][/COLOR][/SIZE][/FONT][FONT=Courier New][SIZE=4][FONT=Courier New][SIZE=4] WSAECONNRESET:
{
[/SIZE][/FONT][/SIZE][/FONT][FONT=Courier New][SIZE=4][COLOR=#008000][FONT=Courier New][SIZE=4][COLOR=#008000][FONT=Courier New][SIZE=4][COLOR=#008000]// The virtual circuit was reset by the remote
[/COLOR][/SIZE][/FONT][/COLOR][/SIZE][/FONT][/COLOR][/SIZE][/FONT][FONT=Courier New][SIZE=4][FONT=Courier New][SIZE=4][/SIZE][/FONT][/SIZE][/FONT][FONT=Courier New][SIZE=4][COLOR=#008000][FONT=Courier New][SIZE=4][COLOR=#008000][FONT=Courier New][SIZE=4][COLOR=#008000]// side executing a hard or abortive close.
[/COLOR][/SIZE][/FONT][/COLOR][/SIZE][/FONT][/COLOR][/SIZE][/FONT][FONT=Courier New][SIZE=4][FONT=Courier New][SIZE=4][/SIZE][/FONT][/SIZE][/FONT][FONT=Courier New][SIZE=4][COLOR=#008000][FONT=Courier New][SIZE=4][COLOR=#008000][FONT=Courier New][SIZE=4][COLOR=#008000]// The application should close the socket
[/COLOR][/SIZE][/FONT][/COLOR][/SIZE][/FONT][/COLOR][/SIZE][/FONT][FONT=Courier New][SIZE=4][FONT=Courier New][SIZE=4][/SIZE][/FONT][/SIZE][/FONT][FONT=Courier New][SIZE=4][COLOR=#008000][FONT=Courier New][SIZE=4][COLOR=#008000][FONT=Courier New][SIZE=4][COLOR=#008000]// because it is no longer usable.
[/COLOR][/SIZE][/FONT][/COLOR][/SIZE][/FONT][/COLOR][/SIZE][/FONT][FONT=Courier New][SIZE=4][FONT=Courier New][SIZE=4]MessageBoxA ( NULL,
[/SIZE][/FONT][/SIZE][/FONT][FONT=Courier New][SIZE=4][COLOR=#a31515][FONT=Courier New][SIZE=4][COLOR=#a31515][FONT=Courier New][SIZE=4][COLOR=#a31515]"Connection broken from remote"[/COLOR][/SIZE][/FONT][/COLOR][/SIZE][/FONT][/COLOR][/SIZE][/FONT][FONT=Courier New][SIZE=4][FONT=Courier New][SIZE=4],
[/SIZE][/FONT][/SIZE][/FONT][FONT=Courier New][SIZE=4][COLOR=#a31515][FONT=Courier New][SIZE=4][COLOR=#a31515][FONT=Courier New][SIZE=4][COLOR=#a31515]"Socket error"[/COLOR][/SIZE][/FONT][/COLOR][/SIZE][/FONT][/COLOR][/SIZE][/FONT][FONT=Courier New][SIZE=4][FONT=Courier New][SIZE=4], MB_OK );
[/SIZE][/FONT][/SIZE][/FONT][FONT=Courier New][SIZE=4][COLOR=#0000ff][FONT=Courier New][SIZE=4][COLOR=#0000ff][FONT=Courier New][SIZE=4][COLOR=#0000ff]break[/COLOR][/SIZE][/FONT][/COLOR][/SIZE][/FONT][/COLOR][/SIZE][/FONT][FONT=Courier New][SIZE=4][FONT=Courier New][SIZE=4];
}
[/SIZE][/FONT][/SIZE][/FONT][FONT=Courier New][SIZE=4][COLOR=#0000ff][FONT=Courier New][SIZE=4][COLOR=#0000ff][FONT=Courier New][SIZE=4][COLOR=#0000ff]default[/COLOR][/SIZE][/FONT][/COLOR][/SIZE][/FONT][/COLOR][/SIZE][/FONT][FONT=Courier New][SIZE=4][FONT=Courier New][SIZE=4]:
{
MessageBoxA ( NULL,
[/SIZE][/FONT][/SIZE][/FONT][FONT=Courier New][SIZE=4][COLOR=#a31515][FONT=Courier New][SIZE=4][COLOR=#a31515][FONT=Courier New][SIZE=4][COLOR=#a31515]"unknown error cause"[/COLOR][/SIZE][/FONT][/COLOR][/SIZE][/FONT][/COLOR][/SIZE][/FONT][FONT=Courier New][SIZE=4][FONT=Courier New][SIZE=4],
[/SIZE][/FONT][/SIZE][/FONT][FONT=Courier New][SIZE=4][COLOR=#a31515][FONT=Courier New][SIZE=4][COLOR=#a31515][FONT=Courier New][SIZE=4][COLOR=#a31515]"Socket error"[/COLOR][/SIZE][/FONT][/COLOR][/SIZE][/FONT][/COLOR][/SIZE][/FONT][FONT=Courier New][SIZE=4][FONT=Courier New][SIZE=4], MB_OK );
[/SIZE][/FONT][/SIZE][/FONT][FONT=Courier New][SIZE=4][COLOR=#0000ff][FONT=Courier New][SIZE=4][COLOR=#0000ff][FONT=Courier New][SIZE=4][COLOR=#0000ff]break[/COLOR][/SIZE][/FONT][/COLOR][/SIZE][/FONT][/COLOR][/SIZE][/FONT][FONT=Courier New][SIZE=4][FONT=Courier New][SIZE=4];
}
} [/SIZE][/FONT][/SIZE][/FONT][FONT=Courier New][SIZE=4][COLOR=#008000][FONT=Courier New][SIZE=4][COLOR=#008000][FONT=Courier New][SIZE=4][COLOR=#008000]// end of switch ( error )
[/COLOR][/SIZE][/FONT][/COLOR][/SIZE][/FONT][/COLOR][/SIZE][/FONT][FONT=Courier New][SIZE=4][FONT=Courier New][SIZE=4]
[/SIZE][/FONT][/SIZE][/FONT][FONT=Courier New][SIZE=4][COLOR=#0000ff][FONT=Courier New][SIZE=4][COLOR=#0000ff][FONT=Courier New][SIZE=4][COLOR=#0000ff]return[/COLOR][/SIZE][/FONT][/COLOR][/SIZE][/FONT][/COLOR][/SIZE][/FONT][FONT=Courier New][SIZE=4][FONT=Courier New][SIZE=4] error;
} [/SIZE][/FONT][/SIZE][/FONT][FONT=Courier New][SIZE=4][COLOR=#008000][FONT=Courier New][SIZE=4][COLOR=#008000][FONT=Courier New][SIZE=4][COLOR=#008000]// end of ErrorHandler function
[/COLOR][/SIZE][/FONT][/COLOR][/SIZE][/FONT][/COLOR][/SIZE][/FONT][FONT=Courier New][SIZE=4][FONT=Courier New][SIZE=4]
[/SIZE][/FONT][/SIZE][/FONT]