SFML - Simple and Fast Multimedia Library
Main Page
Namespaces
Classes
Files
File List
SocketHelper.cpp00001
00002 //
00003 // SFML - Simple and Fast Multimedia Library
00004 // Copyright (C) 2007-2009 Laurent Gomila (laurent.gom@gmail.com)
00005 //
00006 // This software is provided 'as-is', without any express or implied warranty.
00007 // In no event will the authors be held liable for any damages arising from the use of this software.
00008 //
00009 // Permission is granted to anyone to use this software for any purpose,
00010 // including commercial applications, and to alter it and redistribute it freely,
00011 // subject to the following restrictions:
00012 //
00013 // 1. The origin of this software must not be misrepresented;
00014 // you must not claim that you wrote the original software.
00015 // If you use this software in a product, an acknowledgment
00016 // in the product documentation would be appreciated but is not required.
00017 //
00018 // 2. Altered source versions must be plainly marked as such,
00019 // and must not be misrepresented as being the original software.
00020 //
00021 // 3. This notice may not be removed or altered from any source distribution.
00022 //
00024
00026 // Headers
00028 #include <SFML/Network/SocketHelper.hpp>
00029
00030
00031 namespace sf
00032 {
00036 SocketHelper::SocketType SocketHelper::InvalidSocket()
00037 {
00038 return INVALID_SOCKET;
00039 }
00040
00041
00045 bool SocketHelper::Close(SocketHelper::SocketType Socket)
00046 {
00047 return closesocket(Socket) != -1;
00048 }
00049
00050
00054 void SocketHelper::SetBlocking(SocketHelper::SocketType Socket, bool Block)
00055 {
00056 unsigned long Blocking = Block ? 0 : 1;
00057 ioctlsocket(Socket, FIONBIO, &Blocking);
00058 }
00059
00060
00064 Socket::Status SocketHelper::GetErrorStatus()
00065 {
00066 switch (WSAGetLastError())
00067 {
00068 case WSAEWOULDBLOCK : return Socket::NotReady;
00069 case WSAECONNABORTED : return Socket::Disconnected;
00070 case WSAECONNRESET : return Socket::Disconnected;
00071 case WSAETIMEDOUT : return Socket::Disconnected;
00072 case WSAENETRESET : return Socket::Disconnected;
00073 case WSAENOTCONN : return Socket::Disconnected;
00074 default : return Socket::Error;
00075 }
00076 }
00077
00078
00080 // Windows needs some initialization and cleanup to get
00081 // sockets working properly... so let's create a class that will
00082 // do it automatically
00084 struct SocketInitializer
00085 {
00086 SocketInitializer()
00087 {
00088 WSADATA InitData;
00089 WSAStartup(MAKEWORD(2,2), &InitData);
00090 }
00091
00092 ~SocketInitializer()
00093 {
00094 WSACleanup();
00095 }
00096 };
00097
00098 SocketInitializer GlobalInitializer;
00099
00100 } // namespace sf
:: Copyright © 2007-2008 Laurent Gomila, all rights reserved ::
Documentation generated by doxygen 1.5.2 ::
Wyszukiwarka
Podobne podstrony:
SocketUDP?pp sourceSocketTCP?pp sourceSocketUDP 8hpp sourceSocketTCP 8hpp sourceSockets 8hpp sourceSocketHelper 8hpp sourcesource30function socket fd issetMatrix3?pp sourceSocketClientThread?pp sourcearm biquad ?scade ?1 ?st q31? sourcearm conv ?2? sourcearm mat mult q15? sourcefunction socket selectResource 8inl sourcearm fir lattice init q31? sourcewięcej podobnych podstron