527945f75ecf5320f04d8c1dea03fc86135f2652
1 // This is a simple class to handle socket connections
2 // (Paul Brannan 6/15/98)
9 // Mingw32 doesn't use winsock.h (Paul Brannan 9/4/98)
14 #include <Windows32/sockets.h>
20 enum NetworkType
{TN_NETSOCKET
, TN_NETPIPE
};
22 typedef int(*Naws_func_t
)(char *, int, int);
27 BOOL local_echo
; // Paul Brannan 8/25/98
28 BOOL line_mode
; // Paul Brannan 12/31/98
29 NetworkType net_type
; // Paul Brannan 3/18/99
30 HANDLE pipeIn
, pipeOut
; // Paul Brannan 3/18/99
31 Naws_func_t naws_func
;
35 TNetwork(SOCKET s
= 0): socket(s
), local_echo(1), line_mode(1),
36 net_type(TN_NETSOCKET
), naws_func((Naws_func_t
)NULL
),
37 local_address((char *)NULL
) {}
38 ~TNetwork() {if(local_address
) delete local_address
;}
40 void SetSocket(SOCKET s
);
41 SOCKET
GetSocket() {return socket
;}
42 void SetPipe(HANDLE pIn
, HANDLE pOut
);
43 void SetNawsFunc(Naws_func_t func
) {naws_func
= func
;}
44 void SetLocalAddress(char *buf
);
45 const char* GetLocalAddress() {return local_address
;}
47 NetworkType
get_net_type() {return net_type
;}
49 int WriteString(const char *str
, const int length
);
50 int ReadString (char *str
, const int length
);
52 BOOL
get_local_echo() {return local_echo
;}
53 void set_local_echo(BOOL b
) {local_echo
= b
;}
55 BOOL
get_line_mode() {return line_mode
;}
56 void set_line_mode(BOOL b
) {line_mode
= b
;}
58 void do_naws(int width
, int height
);