WOLFRAM

SocketReadyQ
SocketReadyQ

Unsupported in Public Cloud

SocketReadyQ[socket]

tests if there is any data immediately available to read from the specified socket.

SocketReadyQ[socket,t]

waits for up to t seconds to see if data becomes available to read.

Details

  • Sockets in SocketReadyQ[] are specified using SocketObject[].
  • SocketReadyQ returns immediately; unlike Read etc., it does not block waiting for data to become available.
  • For numeric values, t is interpreted as having units of seconds. A time Quantity can also be used.

Examples

open allclose all

Basic Examples  (3)Summary of the most common use cases

Initially on connection, most websites will not send data until a request is made:

Out[1]=1
Out[2]=2

Write a request to the socket and wait for up to 10 seconds for the server's response to arrive:

Out[3]=3

Close the socket:

Out[4]=4

Open a server socket and connect a client socket to it:

Out[1]=1
Out[1]=1

Initially, neither of them has any data available:

Out[2]=2

Sending a message to the client makes the socket ready for reading:

Out[3]=3

After reading the message, there is no more data available:

Out[4]=4

Close the sockets:

Out[5]=5

Wait for a response using a Quantity as the second argument:

Out[1]=1

Close the socket:

Out[2]=2

Neat Examples  (1)Surprising or curious use cases

Make a simple ping time function, measuring how long it takes for an HTTP response to come back:

Ping a host to see how long before it responds:

Out[2]=2

Request the page multiple times:

Out[3]=3
Wolfram Research (2017), SocketReadyQ, Wolfram Language function, https://reference.wolfram.com/language/ref/SocketReadyQ.html.
Wolfram Research (2017), SocketReadyQ, Wolfram Language function, https://reference.wolfram.com/language/ref/SocketReadyQ.html.

Text

Wolfram Research (2017), SocketReadyQ, Wolfram Language function, https://reference.wolfram.com/language/ref/SocketReadyQ.html.

Wolfram Research (2017), SocketReadyQ, Wolfram Language function, https://reference.wolfram.com/language/ref/SocketReadyQ.html.

CMS

Wolfram Language. 2017. "SocketReadyQ." Wolfram Language & System Documentation Center. Wolfram Research. https://reference.wolfram.com/language/ref/SocketReadyQ.html.

Wolfram Language. 2017. "SocketReadyQ." Wolfram Language & System Documentation Center. Wolfram Research. https://reference.wolfram.com/language/ref/SocketReadyQ.html.

APA

Wolfram Language. (2017). SocketReadyQ. Wolfram Language & System Documentation Center. Retrieved from https://reference.wolfram.com/language/ref/SocketReadyQ.html

Wolfram Language. (2017). SocketReadyQ. Wolfram Language & System Documentation Center. Retrieved from https://reference.wolfram.com/language/ref/SocketReadyQ.html

BibTeX

@misc{reference.wolfram_2025_socketreadyq, author="Wolfram Research", title="{SocketReadyQ}", year="2017", howpublished="\url{https://reference.wolfram.com/language/ref/SocketReadyQ.html}", note=[Accessed: 29-March-2025 ]}

@misc{reference.wolfram_2025_socketreadyq, author="Wolfram Research", title="{SocketReadyQ}", year="2017", howpublished="\url{https://reference.wolfram.com/language/ref/SocketReadyQ.html}", note=[Accessed: 29-March-2025 ]}

BibLaTeX

@online{reference.wolfram_2025_socketreadyq, organization={Wolfram Research}, title={SocketReadyQ}, year={2017}, url={https://reference.wolfram.com/language/ref/SocketReadyQ.html}, note=[Accessed: 29-March-2025 ]}

@online{reference.wolfram_2025_socketreadyq, organization={Wolfram Research}, title={SocketReadyQ}, year={2017}, url={https://reference.wolfram.com/language/ref/SocketReadyQ.html}, note=[Accessed: 29-March-2025 ]}