⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 rfc1056.txt

📁 <VC++网络游戏建摸与实现>源代码
💻 TXT
📖 第 1 页 / 共 5 页
字号:
   Messages are stored in mailboxes.  Users can have any number of   mailboxes, which serve both to store and to categorize messages.  A   mailbox object both names a mailbox and describes its contents.   Mailboxes are identified by a unique name; their contents are   described by three numeric values.  The first is the total number of   messages in the mailbox, the second is the total number of unseen   messages (messages that have never been seen by the user via any   client) in the mailbox, and the third is the mailbox's next available   message unique identifier (UID).  The above information is stored in   the mailbox object to allow clients to get a summary of a mailbox's   contents without having to read all the messages within the mailbox.   Some mailboxes are special, in that other users may read the messages   stored in them.  These mailboxes are called "bulletin board   mailboxes" or "bboard mailboxes".  The repository uses bboard   mailboxes to store bboard mail.  Bboard mailboxes differ from   ordinary mailboxes in the following ways:      - Their names are unique across the entire repository;        for instance, only one bboard mailbox named "sf-lovers"        may exist in the entire repository community.  This        does not preclude other users from having an ordinary        mailbox named "sf-lovers".      - Subscribers to the bboard are granted read-only access        to the messages in the bboard mailbox.  The bboard        mailbox's owner (typically the system manager) has        read/update/delete access to the mailbox.   A bboard subscriber keeps track of the messages he has looked at via   a subscription object.  The subscription object contains the name of   the bboard, its owner (the user who owns the bboard mailbox where all   the messages are stored), and the UID of the first message not yet   seen by the subscriber.   Users gain read-only access to a bboard by creating a subscription to   it; they lose that access when they delete that subscription.  A list   of all bboard mailboxes available for subscription can be transmitted   to the user on demand.   Associated with each mailbox are any number of message objects.  Each   message is broken into two parts--a "descriptor", which contains a   summary of useful information about the message, and a "body", which   is the message text itself, including its NIC RFC-822 message header.   Each message is assigned a monotonically increasing UID based on the   owning mailbox's next available UID.  Each mailbox has its own set of   UIDs which, together with the mailbox name and user name, uniquely   identify the message within the repository.  A descriptor holds theLambert                                                         [Page 6]RFC 1056                         PCMAIL                        June 1988   following information:  the message UID, the message size in bytes   and lines, four "useful" message header fields (the "date:", "to:",   "from:", and "subject:" fields), and sixteen flags.  These flags are   given identifying numbers 0 through 15.  Eight of these flags have   well-known definitions and are reserved for the repository's use.   The eight repository-defined flags mark:      - (#0) whether the message has been deleted      - (#1) whether it has been seen      - (#2) whether it has been forwarded to the user      - (#3) whether it has been forwarded by the user      - (#4) whether it has been filed (written to a text file        outside the repository)      - (#5) whether it has been printed (locally or remotely)      - (#6) whether it has been replied to      - (#7) whether it has been copied to another mailbox   The remaining eight flags are availble for user use.  Descriptors   serve as an efficient means for clients to get message information   without having to waste time retrieving the entire message from the   repository.3.2. Repository-to-RFC-822 name translation   "Address objects" provide the repository with a means for translating   the RFC-822-style mail addresses in Internet messages into repository   names.  The repository provides its own namespace for message   identification.  Any message is uniquely identified by the triple   (user-name, mailbox-name, message-UID).  Any mailbox is uniquely   identified by the pair (user-name, mailbox-name).  In order to   translate between RFC-822-style mail addresses and repository names,   the repository maintains a list of address objects.  Each address   object is an association between an RFC-822-style address and a   (user-name, mailbox-name) pair.  When mail arrives from the Internet,   the repository can use the address object list to translate the   recipients into (user-name, mailbox-name) pairs and route the message   correctly.Lambert                                                         [Page 7]RFC 1056                         PCMAIL                        June 19884. Communication between repository and client: DMSP   The Distributed Mail System Protocol (DMSP) defines and manipulates   the objects mentioned in the previous section.  It has been designed   to work with Pcmail's singlerepository/multiple-client model of the   world.  In addition to providing typical mail manipulation functions,   DMSP provides functions that allow easy synchronization of global and   local mail states.   DMSP has been completely re-specified in this version of Pcmail.   Formerly, DMSP was implemented on top of the USP remote-procedure-   call protocol.  Since this protocol is not fully unofficially   specified (let alone officially specified) anywhere, implementation   of USP is difficult for sites wishing to implement Pcmail on   different systems.  We therefore have decided to completely redesign   DMSP.  It is now a very simple request/response protocol similar to   SMTP or NNTP, running directly on a reliable bidirectional byte-   stream such as TCP.  The TCP contact port for DMSP has been   designated 158.  Requests and responses consist of ASCII characters;   on octet-based transmission streams, each character is transmitted   rightjustified in an octet with the high-order bit cleared to zero.4.1. DMSP commands   DMSP operations consist of an operation name, followed by zero or   more tab or space characters, followed by zero or more arguments,   each of which is separated from the operation name and other   arguments by one or more space or tab characters.  All operation   requests, as well as all responses, must be terminated with a   carriage-return plus line-feed (CR-LF) pair.  All operation names and   arguments must be taken from the set of alphanumeric characters plus   the characters dash ("-"), underscore ("_"), and period (".").   DMSP operation names are case-insensitive; they may be transmitted in   any combination of upper and lower case.  DMSP arguments are case-   insensitive but case-preserving; in other words a mailbox named   "MarkL" may be referred to by an operation argument "markl", but will   always be stored, and transmitted in a repository response, as   "MarkL"; furthermore, any attempt to create a new mailbox "MaRkL"   will not be permitted.   Each operation argument may contain no more than 64 characters.  No   single request or response line may contain more than 512 characters,   including all white space and the terminating CR-LF.4.2. DMSP responses   A DMSP operation always results in a response, which may be followedLambert                                                         [Page 8]RFC 1056                         PCMAIL                        June 1988   in turn by a list, consisting of zero or more lines of CR-LF-   terminated text terminated by a single period (".") plus a CR-LF.  A   response is always prefaced by a three-digit reply code; possible   text following the response code can be in any format.  The response   code is sufficient to determine whether the operation succeeded or   failed, or whether more text is forthcoming following the response   line.  Any text following the response code is for information only,   and need not follow any particular format.   The first digit indicates whether the operation succeeded or failed,   and if it succeeded whether or not more text should be presented to   the repository.  Definitions of the first digit are similar to those   of NNTP:   1XX             Informative message   2XX             Operation completed successfully   3XX             Operation completed successfully, present                   remainder of text and terminate with a single                   period plus CR-LF pair.   4XX             Operation was performed and failed for some                   reason.   5XX             Operation could not be performed because of a                   protocol syntax error of some sort.   The second digit indicates the type of object referred to by the   response.   X0X             Miscellaneous   X1X             User operation   X2X             Client operation   X3X             Mailbox operationLambert                                                         [Page 9]RFC 1056                         PCMAIL                        June 1988   X4X             Subscription operation   X5X             Message operation   X6X             Address operation   In an error response, the final digit can describe the type of error   that occurred.  Otherwise, it simply gives a response a unique   number.  Numbers 0 through 3 are significant in 4XX-class (error)   responses only.  Numbers 0-9 in all other responses serve only to   differentiate responses dealing with the same type of object under   different circumstances.   4X0             Operation failed because object exists   4X1             Operation failed because object does not exist   4X2             Operation failed because of an internal error   4X3             Operation failed because of an argument syntax                   error   Each operation generates one of a set of responses, detailed in the   protocol specification appendix.   List termination is determined solely by a well-known character   sequence (CR-LF, period, CR-LF).  Since application data could well   accidentally contain this termination sequence, the transmitting   protocol module must modify application data so it contains no   termination sequences.  The receiving module must similarly undo the   modification before presenting the data to the application at the   receiving end.   The transmitting module modifies application data as follows:  If a   line of application data begins with a period, that period is   duplicated.  Since the termination sequence is a single period,   accidental termination has now been prevented.   The receiving protocol checks incoming all incoming data lines for a   leading period.  A single period is a list terminator; a period   followed by other text is removed before being presented to theLambert                                                        [Page 10]RFC 1056                         PCMAIL                        June 1988   receiving application.

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -