#include #include #include #include #include #include #include "openssl/ssl.h" #include "openssl/bio.h" #include "openssl/err.h" #include "BaseSocket.h" using namespace std; class CServerSocket : public CBaseSocket { public: /// @brief »ý¼ºÀÚ. CServerSocket( const int & socket) : CBaseSocket(socket) { }; /// @brief ¼Ò¸êÀÚ. ~CServerSocket() { Close(); }; ssize_t ReadEx( void * vptr, size_t size ) { return Read(vptr, size); }; }; int main ( int argc, char * argv[] ) { if(argc != 4) { cerr << argv[0] << " server port file" << endl; return EXIT_FAILURE; } int f = open( argv[3], O_RDONLY ); string sendval; if(f > 0 ) { while(true) { char szBuffer[1024] = {0}; int n = 0; if((n = read(f, szBuffer,sizeof(szBuffer))) <=0) break; sendval.append(szBuffer,n); } close( f ); } else { cerr << "The file '"<< argv[3] << "' was not opened" < 0) { char szBuffer[1025] = {0}; r = BIO_read(bio, szBuffer, 1024); if(r < 0 ) { cerr << "Socket Read Error." << endl; ERR_print_errors_fp(stderr); break; } else if ( r == 0) { cerr << "Server closed." << endl; ERR_print_errors_fp(stderr); break; } else { szBuffer[r] = 0; readval.append(szBuffer, r); } } if(!readval.empty()) { cout << "Read Data : " << readval << ", Size = " << readval.size() << endl; } cout << "end" << endl; // ±×³É ½Ã±×³Î ´ë±â pause(); /* Close the connection and free the context */ BIO_free_all(bio); SSL_CTX_free(ctx); return EXIT_SUCCESS; }