source: trunk/vizservers/nanovis/socket/RenderServer.cpp @ 884

Last change on this file since 884 was 226, checked in by mmc, 18 years ago
  • Added code for Wei's visualization server.
  • Fixed the energyLevels widget so that it doesn't barf when the user attempts to download its contents.
File size: 2.1 KB
Line 
1/*
2 * ----------------------------------------------------------------------
3 *  RenderServer.cpp: server with OpenRenderer engine
4 *
5 * ======================================================================
6 *  AUTHOR:  Wei Qiao <qiaow@purdue.edu>
7 *           Purdue Rendering and Perceptualization Lab (PURPL)
8 *
9 *  Copyright (c) 2004-2006  Purdue Research Foundation
10 *
11 *  See the file "license.terms" for information on usage and
12 *  redistribution of this file, and for a DISCLAIMER OF ALL WARRANTIES.
13 * ======================================================================
14 */
15#include "RenderServer.h"
16
17
18RenderServer::RenderServer(){}
19
20RenderServer::RenderServer(int port_num){
21
22        socket_num = port_num;
23
24        //init socket server
25        std::cout << "server up and  running....\n";
26
27        try
28        {
29          // Create the socket
30          server_socket = new ServerSocket(socket_num);
31          //server_socket->set_non_blocking(true);
32
33        }
34        catch ( SocketException& e )
35        {
36          std::cout << "Exception was caught:" << e.description() << "\nExiting.\n";
37        }
38}
39
40
41bool  RenderServer::listen(std::string& data){
42
43    if(!open_socket.is_connected()){
44      if(server_socket->accept(open_socket)){
45        fprintf(stderr, "server: connection accepted\n");
46        try
47        {
48           //std::string data;
49           open_socket >> data;
50           std::cout << "server: msg received - " << data << "\n";
51
52           open_socket << data;
53           return false;
54         }
55         catch ( SocketException& ) { return false;}
56      }
57    }
58    else{
59      try
60      {
61        //std::string data;
62        open_socket >> data;
63        //std::cout << "server: msg received - " << data << "\n";
64
65        //open_socket << data;
66        return true;
67       }
68       catch ( SocketException& ) { return false;}
69    }
70}
71
72
73
74bool  RenderServer::send(std::string& data){
75
76  if(!open_socket.is_connected())
77    return false;
78
79  try
80  {
81    open_socket << data;
82    return true;
83  }
84  catch ( SocketException& ) { return false;}
85}
86
87
88bool RenderServer::send(char* s, int size){
89  if(!open_socket.is_connected())
90    return false;
91
92  try
93  {
94    open_socket.send(s, size);
95    return true;
96  }
97  catch ( SocketException& ) { return false;}
98}
Note: See TracBrowser for help on using the repository browser.