︙ | | | ︙ | |
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
|
#import "socket.h"
OF_ASSUME_NONNULL_BEGIN
/*! @file */
@class OFUDPSocket;
@class OFException;
/*!
* @struct of_udp_socket_address_t OFUDPSocket.h ObjFW/OFUDPSocket.h
*
* @brief A struct which represents a host / port pair for a UDP socket.
*/
typedef struct {
|
<
|
20
21
22
23
24
25
26
27
28
29
30
31
32
33
|
#import "socket.h"
OF_ASSUME_NONNULL_BEGIN
/*! @file */
@class OFUDPSocket;
/*!
* @struct of_udp_socket_address_t OFUDPSocket.h ObjFW/OFUDPSocket.h
*
* @brief A struct which represents a host / port pair for a UDP socket.
*/
typedef struct {
|
︙ | | | ︙ | |
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
|
* @param host The host that has been resolved
* @param port The port of the host / port pair
* @param address The address of the resolved host / port pair
* @param exception An exception which occurred while resolving or `nil` on
* success
*/
typedef void (^of_udp_socket_async_resolve_block_t)(OFString *host,
uint16_t port, of_udp_socket_address_t address,
OFException *_Nullable exception);
/*!
* @brief A block which is called when a packet has been received.
*
* @param socket The UDP which received a packet
* @param buffer The buffer the packet has been written to
* @param length The length of the packet
* @param sender The address of the sender of the packet
* @param exception An exception which occurred while receiving or `nil` on
* success
* @return A bool whether the same block should be used for the next receive
*/
typedef bool (^of_udp_socket_async_receive_block_t)(OFUDPSocket *socket,
void *buffer, size_t length, of_udp_socket_address_t sender,
OFException *_Nullable exception);
#endif
/*!
* @class OFUDPSocket OFUDPSocket.h ObjFW/OFUDPSocket.h
*
* @brief A class which provides methods to create and use UDP sockets.
*
|
|
<
|
|
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
|
* @param host The host that has been resolved
* @param port The port of the host / port pair
* @param address The address of the resolved host / port pair
* @param exception An exception which occurred while resolving or `nil` on
* success
*/
typedef void (^of_udp_socket_async_resolve_block_t)(OFString *host,
uint16_t port, of_udp_socket_address_t address, id _Nullable exception);
/*!
* @brief A block which is called when a packet has been received.
*
* @param socket The UDP which received a packet
* @param buffer The buffer the packet has been written to
* @param length The length of the packet
* @param sender The address of the sender of the packet
* @param exception An exception which occurred while receiving or `nil` on
* success
* @return A bool whether the same block should be used for the next receive
*/
typedef bool (^of_udp_socket_async_receive_block_t)(OFUDPSocket *socket,
void *buffer, size_t length, of_udp_socket_address_t sender,
id _Nullable exception);
#endif
/*!
* @class OFUDPSocket OFUDPSocket.h ObjFW/OFUDPSocket.h
*
* @brief A class which provides methods to create and use UDP sockets.
*
|
︙ | | | ︙ | |
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
|
*
* @param host The host to resolve
* @param port The port for the resulting address
* @param target The target on which to call the selector once the host has been
* resolved
* @param selector The selector to call on the target. The signature must be
* `void (OFString *host, uint16_t port,
* of_udp_socket_address_t address, id context,
* OFException *exception)`.
*/
+ (void)asyncResolveAddressForHost: (OFString *)host
port: (uint16_t)port
target: (id)target
selector: (SEL)selector
context: (nullable id)context;
|
|
<
|
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
|
*
* @param host The host to resolve
* @param port The port for the resulting address
* @param target The target on which to call the selector once the host has been
* resolved
* @param selector The selector to call on the target. The signature must be
* `void (OFString *host, uint16_t port,
* of_udp_socket_address_t address, id context, id exception)`.
*/
+ (void)asyncResolveAddressForHost: (OFString *)host
port: (uint16_t)port
target: (id)target
selector: (SEL)selector
context: (nullable id)context;
|
︙ | | | ︙ | |
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
|
* datagram has been received. If the method returns true, it
* will be called again with the same buffer and maximum length
* when more datagrams have been received. If you want the next
* method in the queue to handle the datagram received next, you
* need to return false from the method.
* @param selector The selector to call on the target. The signature must be
* `bool (OFUDPSocket *socket, void *buffer, size_t length,
* of_udp_socket_address_t, id context,
* OFException *exception)`.
*/
- (void)asyncReceiveIntoBuffer: (void *)buffer
length: (size_t)length
target: (id)target
selector: (SEL)selector
context: (nullable id)context;
|
|
<
|
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
|
* datagram has been received. If the method returns true, it
* will be called again with the same buffer and maximum length
* when more datagrams have been received. If you want the next
* method in the queue to handle the datagram received next, you
* need to return false from the method.
* @param selector The selector to call on the target. The signature must be
* `bool (OFUDPSocket *socket, void *buffer, size_t length,
* of_udp_socket_address_t, id context, id exception)`.
*/
- (void)asyncReceiveIntoBuffer: (void *)buffer
length: (size_t)length
target: (id)target
selector: (SEL)selector
context: (nullable id)context;
|
︙ | | | ︙ | |