:Evaluate: BeginPackage["Sockets`"] :Evaluate: SocketConnect::usage = "SocketConnect[machine, port]" :Evaluate: SocketClose::usage = "SocketClose[sock_Integer]" :Evaluate: SocketRead::usage = "SocketRead[sock_Integer, maxLength]" :Evaluate: SocketWrite::usage = "SocketWrite[sock_Integer, string]" :Evaluate: Begin["Private`"] :Begin: :Function: SetupConnection :Pattern: SocketConnect[machine_String, port_Integer] :Arguments: { machine, port } :ArgumentTypes: { String, Integer } :ReturnType: Integer :End: :Begin: :Function: CloseConnection :Pattern: SocketClose[sock_Integer] :Arguments: { port } :ArgumentTypes: { Integer } :ReturnType: Integer :End: :Begin: :Function: Read :Pattern: SocketRead[fd_Integer, maxlen_Integer] :Arguments: { fd, maxlen } :ArgumentTypes: { Integer, Integer } :ReturnType: Manual :End: :Begin: :Function: Write :Pattern: SocketWrite[fd_Integer, s_String] :Arguments: { fd, s, StringLength[s] } :ArgumentTypes: { Integer, ByteString, Integer } :ReturnType: Integer :End: :Evaluate: End[] :Evaluate: EndPackage[]