Topics
All
MacOS
(Only)
Windows
(Only)
Linux
(Only, Not)
iOS
(Only, Not)
Components
Crossplatform Mac & Win
Server
Client
Old
Deprecated
Guides
Examples
Videos
New in version:
12.1
12.2
12.3
12.4
12.5
13.0
13.1
13.2
13.3
13.4
Statistic
FMM
Blog
Reads bytes from socket and returns them as text.
Component | Version | macOS | Windows | Linux | Server | iOS SDK |
Socket | 3.1 | ✅ Yes | ✅ Yes | ✅ Yes | ✅ Yes | ✅ Yes |
Parameter | Description | Example | Flags |
---|---|---|---|
SocketID | The socket ID received by Socket.Connect function. | $sock | |
length | Maximum number of bytes to read. | 10 | |
Encoding | The text encoding for result. Default is native. This function can also handle UTF-16 as well as UTF-16LE and UTF-16BE for little/big endian byte order. Possible encoding names: ANSI, ISO-8859-1, Latin1, Mac, Native, UTF-8, DOS, Hex, Base64 or Windows. More listed in the FAQ. |
UTF8 | Optional |
Returns text or error message.
Read up to 8 bytes and decode them from Windows text encoding into FileMaker:
$value = MBS( "Socket.Read"; $sock; 8; "windows" )
Connect to a HTTP Server and wait for answer:
Set Variable [$r; Value:MBS("Trace")]
Set Variable [$sock; Value:MBS("Socket.Connect"; TCP Socket::DomainOrIP; 80)]
If [MBS("IsError")]
Show Custom Dialog ["Error"; $sock]
Exit Script []
End If
Set Variable [$request; Value:"GET "&TCP Socket::Path&" HTTP/1.0¶Host: "&TCP Socket::DomainOrIP&"¶¶"]
Set Variable [$request; Value:MBS("Text.ReplaceNewline"; $request; 2)]
Set Field [TCP Socket::RequestUsed; $request]
Set Variable [$r; Value:MBS("Socket.Write"; $sock; $request)]
Pause/Resume Script [Duration (seconds): 1]
Set Variable [$data; Value:MBS("Socket.Read"; $sock; 1000)]
Set Variable [$data; Value:MBS("Text.ReplaceNewline"; $data; 1)]
Set Field [TCP Socket::Result; $data]
Set Variable [$r; Value:MBS("Socket.Close"; $sock)]
Read data and put in a new record:
Set Variable [$r; Value:MBS("Socket.Read"; $$sock; 1500; "UTF-8")]
If [MBS("IsError")]
Show Custom Dialog ["Error Reading"; $r]
Else If [Length($r) = 0]
Show Custom Dialog ["Error Reading"; "No data available."]
Else
New Record/Request
Set Field [UDP Broadcast::Message Received; $r]
Set Field [UDP Broadcast::Sender; MBS("Socket.LastMessageIP"; $$sock)]
Commit Records/Requests [No dialog]
End If
This function is free to use.
Created 18th August 2014, last changed 29th July 2022