Important Update:
- SelectableCore:
- Finish UDP implementation
- Change UDPsock to UDPserver/client/remote
- Add OpenUDPserver/client/remote methods
- Add ReadFrom/WriteToUDP() methods (cannot write to FD)
- ReadFrom/WriteToFD():
- return negative bytes on error
- small delay between consecutive reads/writes
- Set address correctly on resolve (for UDP or TCP)
- Improve ReadFrom/WriteToFD() methods (improved timing & error)
- Improve error reporting on Input/OutputHandle() methods
- CharBufferCore:
- Standardise ReadFrom/WriteToFD() method
- Bug fix: Peek/PeekCopy error if Data param not passed
- FileCore
- Standardise ReadFrom/WriteToFD() method
This commit is contained in:
@@ -18,8 +18,9 @@
|
||||
|
||||
// Types required for connections
|
||||
typedef enum { ctNone = 0, ctSerial = 1, ctLinePrinter = 2, ctForkPipe = 3, ctUNIXserver = 4, ctUNIXclient = 5, ctUNIXremote = 6,
|
||||
ctUDPsock = 7, ctTCPserver = 8, ctTCPremote = 9, ctTCPclient = 10 } EConnectType;
|
||||
const char ConnectTypeName[][20] = { "None", "Serial", "LinePrinter", "ForkPipe", "UNIXserver", "UNIXclient", "UNIXremote", "UDPsock", "TCPserver", "TCPremote", "TCPclient" };
|
||||
ctUDPserver = 7, ctUDPclient = 8, ctUDPremote = 9, ctTCPserver = 10, ctTCPremote = 11, ctTCPclient = 12 } EConnectType;
|
||||
const char ConnectTypeName[][20] = { "None", "Serial", "LinePrinter", "ForkPipe", "UNIXserver", "UNIXclient", "UNIXremote",
|
||||
"UDPserver", "UDPclient", "UDPremote", "TCPserver", "TCPremote", "TCPclient" };
|
||||
|
||||
typedef enum { csNone = 0, csOpenRequest = 1, csWaitingtoOpen = 2, csOpen = 3, csDataWaiting = 4, csClosed = 5, csFailed = 6 } EConnectState;
|
||||
const char ConnectStateName[][15] = { "None", "OpenRequest", "WaitingToOpen", "Open", "DataWaiting", "Closed", "Failed" };
|
||||
@@ -218,7 +219,9 @@ protected:
|
||||
|
||||
// Socket Operations
|
||||
bool ResolveAddress( THandle * Handle, bool DelayResolve );
|
||||
int OpenUDPsocket( THandle * Handle, bool DelayResolve );
|
||||
int OpenUDPserverSocket( THandle * Handle, bool DelayResolve );
|
||||
int OpenUDPremoteSocket( THandle * Handle, char * RemoteAddr, char * RemotePort );
|
||||
int OpenUDPclientSocket( THandle * Handle, bool DelayResolve );
|
||||
int OpenTCPserverSocket( THandle * Handle, bool DelayResolve );
|
||||
int OpenTCPremoteSocket( THandle * Handle );
|
||||
int OpenTCPclientSocket( THandle * Handle, bool DelayResolve );
|
||||
@@ -227,6 +230,9 @@ protected:
|
||||
int ReadFromFD( int FD, char * Data, int MaxLen );
|
||||
int WriteToFD( int FD, const char * Data, int Len, bool Force );
|
||||
|
||||
int ReadFromUDP( THandle * Handle, char * RemoteAddr, char * RemotePort, char * Data, int MaxLen );
|
||||
int WriteToUDP( THandle * Handle, const char * Data, int Len, bool Force );
|
||||
|
||||
// Buffer operations
|
||||
virtual bool ProcessInputBuffer( THandle * Handle, bool Force );
|
||||
|
||||
|
||||
Reference in New Issue
Block a user