Class DTCPServer

Inherits from:
Object
Declared in:
DTCPServer.h

Class Hierarchy

    Object
      |
      +---DTCPServer

Class Description

The DTCPServer class implements a number of methods for implementing a TCP server. (Note: on WIN32 DTS_FORKING is not possible; when DTS_FORKING is used, it is switched to DTS_THREADING)(Note: this class assumes that the socket is blocking.)(Note: on FreeBSD DTS_THREADING results in errors; when DTS_THREADING is used, it is switched to DTS_FORKING)

Example:
#include <stdio.h>
#include "ofc/DTCPServer.h"
#include "ofc/DSocketAddress.h"

@interface MyServer : DTCPServer
{
}

- (BOOL) handleRequest :(DData *) request :(DData *) response;

@end

@implementation MyServer

- (BOOL) handleRequest :(DData *) request :(DData *) response
{
  DText *str;

  str = [request toText];              // Print the response
  printf("Server receives the request:%s\n", [str cstring]);
  [str free];

  printf(".. and sends: Nice weather.\n");

  [response set :"Nice weather" :12];  // Send the response

  return YES;                          // Example stop the server
}

@end

int main(int argc, char *argv[])
{
  MyServer           *srvr = [MyServer       new];
  DInetSocketAddress *addr = [DInetSocketAddress new];

  [addr any :7000];                    // Setup the address for the server

  printf("Open the server..\n");

  if ([srvr open :[addr family] :[DSocket protocol :"tcp"]])
  {
    printf("Start the server (and wait for client to connect)..\n");

    if (![srvr start :addr :2 :DTS_BLOCKING :1])
      printf("Could not start the server ..\n");
  }
  else
    printf("Could not open the server ..\n");

  [srvr free];                         // Cleanup
  [addr free];

  return 0;
}
Last modified:
11-Aug-2008 (DTCPServer.h)

Instance Variables

private DSocket *_local
the local socket
private int _mode
the running mode (DTS_THREADING, DTS_FORKING, DTS_BLOCKING)
private int _sendFlag
the send flag (def. 0)
private int _recvFlag
the receive flag (def. 0)
private unsigned _recvLength
the length used during receiving of requests (def. 1024)

Method Index


generated 06-Sep-2008 by ObjcDoc 3.0.0