
Untitled
By: a guest on
Jul 24th, 2012 | syntax:
None | size: 0.87 KB | hits: 18 | expires: Never
How to get rid of accept: Already open exception in boost::asio server
class Server{
public:
Server(unsigned short port, ConcurrentQueue<uint8_t*>*queueToServer, unsigned int width, unsigned int height):mSocket(mIOService),mAcceptor(mIOService,ip::tcp::endpoint(ip::tcp::v4(), port)),mQueue(queueToServer), dSize(width*height*3){}
void run(){
unsigned char* data;
boost::system::error_code ignored_error;
while(true){
if (mQueue->try_pop(data)){
const mutable_buffer image_buffer(data, dSize);
//if (!mSocket.is_open())
mAcceptor.accept(mSocket);
boost::asio::write(mSocket, buffer(image_buffer), transfer_all(), ignored_error);
}
}
}
private:
io_service mIOService;
ip::tcp::socket mSocket;
ip::tcp::acceptor mAcceptor;
ConcurrentQueue<uint8_t*>* mQueue;
std::size_t dSize;
};