added port output for sockets.recvFrom
This commit is contained in:
parent
6c6dfff4e9
commit
de04b50f67
1 changed files with 5 additions and 4 deletions
|
|
@ -1205,7 +1205,7 @@ proc recvAsync*(socket: TSocket, s: var TaintedString): bool =
|
||||||
result = True
|
result = True
|
||||||
|
|
||||||
proc recvFrom*(socket: TSocket, data: var string, length: int,
|
proc recvFrom*(socket: TSocket, data: var string, length: int,
|
||||||
address: var string, flags = 0'i32): int =
|
address: var string, port: var int16, flags = 0'i32): int =
|
||||||
## Receives data from ``socket``. This function should normally be used with
|
## Receives data from ``socket``. This function should normally be used with
|
||||||
## connection-less sockets (UDP sockets).
|
## connection-less sockets (UDP sockets).
|
||||||
##
|
##
|
||||||
|
|
@ -1215,7 +1215,7 @@ proc recvFrom*(socket: TSocket, data: var string, length: int,
|
||||||
## function will make no effort to return it.
|
## function will make no effort to return it.
|
||||||
|
|
||||||
# TODO: Buffered sockets
|
# TODO: Buffered sockets
|
||||||
data = newString(length)
|
data.setLen(length)
|
||||||
var sockAddress: Tsockaddr_in
|
var sockAddress: Tsockaddr_in
|
||||||
var addrLen = sizeof(sockAddress).TSockLen
|
var addrLen = sizeof(sockAddress).TSockLen
|
||||||
result = recvFrom(socket.fd, cstring(data), length.cint, flags.cint,
|
result = recvFrom(socket.fd, cstring(data), length.cint, flags.cint,
|
||||||
|
|
@ -1223,13 +1223,14 @@ proc recvFrom*(socket: TSocket, data: var string, length: int,
|
||||||
|
|
||||||
if result != -1:
|
if result != -1:
|
||||||
address = $inet_ntoa(sockAddress.sin_addr)
|
address = $inet_ntoa(sockAddress.sin_addr)
|
||||||
|
port = ntohs(sockAddress.sin_port)
|
||||||
|
|
||||||
proc recvFromAsync*(socket: TSocket, data: var String, length: int,
|
proc recvFromAsync*(socket: TSocket, data: var String, length: int,
|
||||||
address: var string, flags = 0'i32): bool =
|
address: var string, port: var int16, flags = 0'i32): bool =
|
||||||
## Similar to ``recvFrom`` but raises an EOS error when an error occurs.
|
## Similar to ``recvFrom`` but raises an EOS error when an error occurs.
|
||||||
## Returns False if no messages could be received from ``socket``.
|
## Returns False if no messages could be received from ``socket``.
|
||||||
result = true
|
result = true
|
||||||
var callRes = recvFrom(socket, data, length, address)
|
var callRes = recvFrom(socket, data, length, address, port, flags)
|
||||||
if callRes < 0:
|
if callRes < 0:
|
||||||
when defined(windows):
|
when defined(windows):
|
||||||
# TODO: Test on Windows
|
# TODO: Test on Windows
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue