Platform/소켓
-
WSAAsyncSelect() - IO 멀티플렉싱(Win32)Platform/소켓 2009. 4. 18. 17:25
WSAAsyncSelect() 소켓 이벤트를 윈도우 메시지로 비동기적으로 통보 받을 수 있기 때문에 IO 호출에 블록되는 것을 피할 수 있다. 비동기 데이타 송수신이 제공되는 것은 아니다. FD_CLOSE FD_ACCEPT FD_READ FD_WRITE // // Function: FindSocketObj // // Description: // Search through the lsit of socket objects for the object matching // the socket handle supplied. Return the object if found; NULL otherwise. // SOCKET_OBJ *FindSocketObj(SOCKET s) { SOCKET_OBJ *ptr=NULL; ..
-
FTP - Win32Platform/소켓 2009. 2. 23. 23:05
InternetOpen() INTERNET_OPEN_TYPE_PRECONFIG InternetConnect() INTERNET_DEFAULT_FTP_PORT INTERNET_SERVICE_FTP INTERNET_FLAG_PASSIVE InternetCloseHandle() FtpSetCurrentDirectory() FtpFindFirstFile() InternetFindNextFile() FtpOpenFile() GENERIC_READ GENERIC_WRITE FTP_TRANSFER_TYPE_BINARY InternetCloseHandle() InternetWriteFile() InternetReadFile() FtpDeleteFile() FtpRenameFile() FtpCreateDirectory(..
-
URL 파싱 - Win32Platform/소켓 2009. 2. 22. 17:38
void ParseURL(const CString &url_, CString &server, CString &filepath, CString &filename) { int n; CString url = url_; if (url.Left(7) == "http://") url = url.Mid(7); n = url.Find('/'); server = url.Left(n); filepath = url.Mid(n); n = filepath.ReverseFind('/'); filename = filepath.Right(filepath.GetLength()-(n+1)); } #include #include class URLParse { URL_COMPONENTS m_urlcomponent; char m_szExtr..
-
HTTP - MFCPlatform/소켓 2009. 2. 14. 18:40
#include CInternetSessionINTERNET_OPEN_TYPE_DIRECT.SetOption()INTERNET_OPTION_CONNECT_TIMEOUT.GetHttpConnection() // CHttpConnection.OpenURL().Close()CInternetException.GetErrorMessage(()CHttpConnection.Close().OpenRequest() // CHttpFileHTTP_VERB_POSTCHttpFile.Close().AddRequestHeaders().GetLength()주의: 파일 크기가 아니다..ReadString().Read()//.ReadHuge()요청한 크기보다 작을 수 있다. // ???.Seek()로컬 PC의 캐시에 적용되기 ..
-
WindowsPlatform/소켓 2009. 2. 14. 17:52
#include InternetOpen() InternetConnect() InternetOpenUrl() INTERNET_FLAG_DONT_CACHE InternetCloseHandle() InternetQueryDataAvailable() InternetReadFile() 요청한 크기보다 작을 수 있다. InternetWriteFile() InternetCrackUrl() InternetSetFilePointer() 로컬 PC의 캐시에 적용되기 때문에 큰 파일에는 사용하면 안될 것 같음 // ??? InternetSetStatusCallback() InternetSetOption() UDP 서버는 소켓이 하나만 있으면 된다. #define FD_SETSIZE 200 #include #pragma co..
-
HTTP - Win32Platform/소켓 2009. 2. 13. 20:30
웹서버만 있으면 된다. Windows Internet API(WinINet API) HTTP FTP gopher 서버를 만드는 데는 사용할 수 없다 wininet.dll #include InternetOpen() INTERNET_OPEN_TYPE_PRECONFIG InternetConnect() INTERNET_DEFAULT_HTTP_PORT INTERNET_SERVICE_HTTP InternetOpenUrl() INTERNET_FLAG_DONT_CACHEHttpQueryInfo() InternetCloseHandle() InternetQueryDataAvailable() InternetReadFile() 요청한 크기보다 작을 수 있다. HttpOpenRequest() 파일 이름에 한글이 포함된 경우 U..
-
MFCPlatform/소켓 2009. 2. 13. 19:03
CInternetSessionINTERNET_OPEN_TYPE_DIRECT.SetOption()INTERNET_OPTION_CONNECT_TIMEOUT.GetFtpConnection().OpenURL()CInternetFile -> CStdioFile.Close().Read().SetReadBufferSize().GetLength()주의: 파일 크기가 아니다..ReadString().Read()요청한 크기보다 작을 수 있다. // ???.Seek()로컬 PC의 캐시에 적용되기 때문에 큰 파일에는 사용하면 안될 것 같음 // ???CInternetExceptionAfxSocketInit()CSocketOnAcceptOnCloseOnReceiveOnMessagePending.Create().Lis..
-
FTP - MFCPlatform/소켓 2009. 2. 8. 18:50
#include CInternetSession .SetOption() INTERNET_OPTION_CONNECT_TIMEOUT .GetFtpConnection() CFtpConnection .Close() .GetCurrentDirectory() .SetCurrentDirectory() .GetFile() .PutFile() .OpenFile() .Remove() CInternetFile -> CStdioFile .Close() .Read() .Write() CInternetException GetErrorMessage()