00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024 #ifndef SOCKET_H
00025 #define SOCKET_H
00026
00027 #include <prtypes.h>
00028 #include <prmem.h>
00029 #include <prio.h>
00030 #include <prmon.h>
00031 #include <prerror.h>
00032 #include <prthread.h>
00033 #include <prnetdb.h>
00034 #include <iostream>
00035 #include <string>
00036
00037 #include "Message.h"
00038
00039 using namespace std;
00040
00041 namespace net
00042 {
00048 class Socket
00049 {
00050 private:
00054 string mRemoteAddr;
00058 string mLocalAddr;
00059
00063 PRNetAddr netaddr;
00067 PRFileDesc *sockfd;
00068
00069 public:
00074 Socket();
00080 Socket(Socket *);
00085 ~Socket();
00086
00092 Message * Recv();
00093
00099 int Send(Message *);
00100
00108 int Connect(string addr,int port);
00109
00117 int Bind(string,int);
00118
00124 int Listen();
00125
00131 Socket * Accept();
00132
00138 void setLocalAddr(string);
00139
00145 void setRemoteAddr(string);
00146
00152 string getLocalAddr();
00153
00159 string getRemoteAddr();
00160 };
00161 }
00162
00163 #endif