Topics   All   Mac OS X (Only)   Windows (Only)   Linux (Only, Not)   iOS (Only, Not)  
Components   Crossplatform Mac & Win   Server (Not)   Client   Old   Guides   Examples
New in version: 6.3   6.4   6.5   7.0   7.1   7.2   7.3   7.4   7.5   7.6    Statistic  

Socket.Read

Reads bytes from socket and returns them as text.

Component Version macOS Windows Server FileMaker Cloud FileMaker iOS SDK
Socket 3.1 Yes Yes Yes Yes Yes

MBS( "Socket.Read"; SocketID; length { ; Encoding } )

Parameters

Parameter Description Example value
SocketID The socket ID received by Socket.Connect function. $sock
length Maximum number of bytes to read. 10
Encoding Optional
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, Arabic-Mac, Arabic-Win, Baltic-Win, CentralEurope-Mac, ChineseSimp-Mac, ChineseSimp-Win, ChineseTrad-Mac, ChineseTrad-Win, Cyrillic-Mac, Cyrillic-Win, EasternEurope-Win, Greek-Mac, Greek-Win, Hebrew-Mac, Hebrew-Win, ISO-8859-1, ISO-8859-2, ISO-8859-3, ISO-8859-4, ISO-8859-5, ISO-8859-6, ISO-8859-7, ISO-8859-8, ISO-8859-9, ISO-8859-15, Korean-Johab, Korean-Mac, Korean-Win, Latin1, Mac, Native, ShiftJIS-Mac, ShiftJIS-Win, Turkish-Mac, Turkish-Win, UTF-8, DOS or Windows. Pass native to use the native encoding of the current platform.
UTF8

Result

Returns text or error message.

Description

Reads bytes from socket and returns them as text.
The text returned may be shorter than length bytes.

Examples

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("String.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("String.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

See also

Example Databases


Socket.PeekHex   -   Socket.ReadAll

Feedback: Report problem or ask question.




Links
MBS FileMaker tutorial videos