| Original ipmsg protocol specification is written in Japanese. 最初的飛鴿傳書(shū)協(xié)議說(shuō)明書(shū)是日文書(shū)寫(xiě)。 This?document was translated by Mr.Kanazawa. 本文檔是Mr.Kanazawa.翻譯完成。 This?document is?not?verified yet. 本文檔尚未被認(rèn)證。 ---------------------------------------------------------------------- ????IP Messenger communication protocol?(Draft-9)?1996/02/21 飛鴿傳書(shū)傳書(shū)協(xié)議(草案-9) 1996/02/21 ????????????????????????????????Modified 2003/01/14 修訂于2003/01/14 ????????????????????????????????????H.Shirouzu ?白水 啟章 ??????????????????????????????shirouzu@h.email.ne.jp (作者郵箱) ----------------------------------------------------------------------
About IP Messenger 關(guān)于飛鴿傳書(shū) ????This?is a?Send/Receive message service?using?the TCP/UDP Port. 它是基于TCP/IP端口的收發(fā)信息服務(wù)。 Characteristics 特點(diǎn) ????IP Messenger can be installed in?any?OS?if?TCP/IP is used on your machine. 飛鴿傳書(shū)可以安裝在任一使用TCP/IP協(xié)議的的操作系統(tǒng)上。 ????Dynamic member recognition can be done within your network?or?specified network. 在網(wǎng)絡(luò)中完成了動(dòng)態(tài)用戶識(shí)別機(jī)制。 ????You can exchange?messages?between all IPMsg members. 所有飛鴿用戶之間可以相互交換信息。 Function description 功能描述 ????Use TCP/UDP port(default:2425).?See the following descriptions 使用TCP/UDP端口(默認(rèn)端口:2425)。見(jiàn)下述描述 ????(Message?Send/Receive:?UDP,?File?Send/Receive:?TCP) (信息 發(fā)送/接收:UDP, 文件發(fā)送/接收:TCP) 1.?Command 命令 ??1)?Command functions?(Low 8 bits from command number 32 bits) 命令功能(32位命令字的低8位) ????IPMSG_NOOPERATION No Operation ? 沒(méi)有任何操作 ????IPMSG_BR_ENTRY Entry to service?(Start-up with a Broadcast command) 上線(開(kāi)始于廣播此命令) ????IPMSG_BR_EXIT?Exit?from service?(End with a Broadcast command) 下線(結(jié)束于廣播此命令) ????IPMSG_ANSENTRY Notify a?new?entry 通報(bào)新上線 ????IPMSG_BR_ABSENCE Change absence mode 更改為離開(kāi)狀態(tài) ????IPMSG_BR_ISGETLIST?Search?valid sending host members 搜尋有效的主機(jī)用戶 ????IPMSG_OKGETLIST Host?list?sending notice 主機(jī)列表發(fā)送通知 ????IPMSG_GETLIST Host?list?sending request 主機(jī)列表發(fā)送請(qǐng)求 ????IPMSG_ANSLIST Host?list?sending 主機(jī)列表發(fā)送 ????IPMSG_SENDMSG Message transmission 消息傳送 ????IPMSG_RECVMSG Message receiving check 接收消息確認(rèn) ????IPMSG_READMSG Message?open?notice 消息打開(kāi)通知 ????IPMSG_DELMSG Message discarded notice 消息丟棄通知 ????IPMSG_ANSREADMSG Message?open?confirmation notice(added from version-8?) 消息打開(kāi)確認(rèn)通知(版本8中加入) ????IPMSG_GETFILEDATA?File?Transfer request by TCP 基于TCP的文件傳送請(qǐng)求 ????IPMSG_RELEASEFILES Discard attachment?file 丟棄(取消)附件文件的接收 ????IPMSG_GETDIRFILES Attachment hierarchical?file?request 文件夾傳書(shū)請(qǐng)求 ????IPMSG_GETINFO Get IPMSG version info. 飛鴿版本信息 ????IPMSG_SENDINFO?Send?IPMSG version info. 傳送飛鴿版本信息 ????IPMSG_GETABSENCEINFO Get absence sentence 獲取離線判定 ????IPMSG_SENDABSENCEINFO?Send?absence sentence 發(fā)送離線判定 ????IPMSG_GETPUBKEY RSA?Public?Key Acquisition 公鑰獲取 ????IPMSG_ANSPUBKEY RSA?Public?Key Response 公鑰相應(yīng) ??2)?Option flag?(High 24 bits from command number 32 bits) ?選項(xiàng)位(32位命令字的高24位) ????IPMSG_ABSENCEOPT Absence mode(Member recognition command) 離開(kāi)狀態(tài)(用戶識(shí)別命令) ????IPMSG_SERVEROPT Server(Reserved) 服務(wù)器(保留) ????IPMSG_DIALUPOPT?Send?individual member recognition command 發(fā)送個(gè)人用戶識(shí)別命令 ????IPMSG_SENDCHECKOPT Transmission check 傳送檢查 ????IPMSG_SECRETOPT Sealed message 封閉信息 ????IPMSG_READCHECKOPT Sealed message check(added from ver8?) 封閉信息檢查(版本8中加入) ????IPMSG_PASSWORDOPT Lock 鎖 ????IPMSG_BROADCASTOPT Broadcast message 廣播信息 ????IPMSG_MULTICASTOPT Multi-cast(Multiple casts selection) 多播 ????IPMSG_NEWMUTIOPT?New?version multi-cast(reserved) 新版本多播 ????IPMSG_AUTORETOPT Automatic response(Ping-pong protection) 自動(dòng)回復(fù) ????IPMSG_NOLOGOPT No?log?files 無(wú)日志文件 ????IPMSG_NOADDLISTOPT Notice to the members outside of BR_ENTRY 不在線用戶通知 ????IPMSG_FILEATTACHOPT?File?attachment 文件附件選項(xiàng) ????IPMSG_ENCRYPTOPT Code 編碼 ????IPMSG_NOPOPUPOPT?(No longer valid) (不可用) ????IPMSG_RETRYOPT Re-send?flag(Use when acquiring HOSTLIST) 重發(fā)位(在獲取hostlist時(shí)使用) ??3)?Extended code flag?(hex?format combination) 擴(kuò)展編碼位(十六進(jìn)制格式組合) ????IPMSG_RSA_512 ????IPMSG_RSA_1024 ????IPMSG_RSA_2048 ????IPMSG_RC2_40 ????IPMSG_RC2_128 ????IPMSG_RC2_256 ????IPMSG_BLOWFISH_128 ????IPMSG_BLOWFISH_256 ????IPMSG_SIGN_MD5
??4)?Extended files?for?attachment?(fileattr low 8 bits) 文件附件擴(kuò)展(文件屬性低8位) ????IPMSG_FILE_REGULAR ????IPMSG_FILE_DIR ????IPMSG_FILE_RETPARENT ????IPMSG_FILE_SYMLINK ????IPMSG_FILE_CDEV ????IPMSG_FILE_BDEV ????IPMSG_FILE_FIFO ????IPMSG_FILE_RESFORK
??5)?Attachment?file?extended attribute(fileattr high 24 bits) 附件文件屬性(文件屬性高24位) ????IPMSG_FILE_RONLYOPT ????IPMSG_FILE_HIDDENOPT ????IPMSG_FILE_EXHIDDENOPT ????IPMSG_FILE_ARCHIVEOPT ????IPMSG_FILE_SYSTEMOPT
??6)?Extended?file?attribute?for?attachment?file 附件文件的擴(kuò)展文件屬性 ????IPMSG_FILE_UID ????IPMSG_FILE_USERNAME ????IPMSG_FILE_GID ????IPMSG_FILE_GROUPNAME ????IPMSG_FILE_PERM ????IPMSG_FILE_MAJORNO ????IPMSG_FILE_MINORNO ????IPMSG_FILE_CTIME ????IPMSG_FILE_MTIME ????IPMSG_FILE_ATIME ????IPMSG_FILE_CREATETIME
????IPMSG_FILE_CREATOR ????IPMSG_FILE_FILETYPE ????IPMSG_FILE_FINDERINFO
????IPMSG_FILE_ACL ????IPMSG_FILE_ALIASFNAME ????IPMSG_FILE_UNICODEFNAME
2.Command format(Use all character strings) 數(shù)據(jù)包格式(使用字符串形式) ??1)?Command(Format version-1) 命令(格式 版本-1) ????Ver(1)?:?PacketNo?:?SenderName?:?SenderHost?:?CommandNo?:?AdditionalSection 版本:包編號(hào):發(fā)送者名字:發(fā)送主機(jī):命令編號(hào):附加信息區(qū)域 ??2)?An example?for?Message?Send/Receive by?using?the current command format 一個(gè)使用當(dāng)前命令格式收發(fā)信息的例子 ????"1:100:shirouzu:jupiter:32:Hello"
3.Command process overview 數(shù)據(jù)包過(guò)程總覽 ??1)?Member recognition 用戶識(shí)別 ????An IPMSG_BR_ENTRY command notifies a?new?entry to the current ????members at start-up. 飛鴿啟動(dòng)時(shí)IPMSG_BR_ENTRY命令向當(dāng)前所有用戶發(fā)送上線通知。 ????All members add the?new?member to their?list?after getting a notification message. 所有用戶當(dāng)受到通知信息時(shí)把用戶加入列表。 ????An IPMSG_ANSENTRY command sends a message back to the?new?member. ?IPMSG_ANSENTRY命令回發(fā)到上線新用戶。 ????The?new?member?gets?the current member data by a ????IPMSG_ANSENTRY command.?All members can communicate as?long?as an ????IP packet exists. 新用戶通過(guò)IPMSG_ANSENTRY命令得到當(dāng)前在線用戶信息。所有用戶在IP存在時(shí)可以互相通信。 ????An IPMSG_BR_ABSENCE command broadcasts absence mode cancel?or ????nickname change to all members.?However,?an IPMSG_ANSENTRY command ????does?not?send?a message back,?which is different from an IPMSG_BR_ENTRY ????command. ?IPMSG_BR_ABSENCE信息廣播給所有用戶該用戶離開(kāi)狀態(tài)取消或者昵稱(chēng)改變。但是和IPMSG_BR_ENTRY命令不同的 ? ??? 是IPMSG_BR_ABSENCE命令不回發(fā)信息。 ????IPMSG_BR_ENTRY,?IPMSG_ANSENTRY,?and?IPMSG_BR_ABSENCE commands ????use an IPMSG_ABSENCEOPT flag?for?absence mode.?Input a nickname to ????additional command. ?IPMSG_BR_ENTRY,?IPMSG_ANSENTRY, 和 IPMSG_BR_ABSENCE命令使用IPMSG_ABSENCEOPT位for離 開(kāi)狀態(tài)。輸入昵稱(chēng)到附加命令中。 ????Add an IPMSG_DIALUPOPT flag?for?dial-up users who can't be reached by ????a broadcast command. A member recognition command needs to be ????sent individually to the members with this optional flag. 添加IPMSG_DIALUPOPT位for廣播信息不能達(dá)到的撥號(hào)用戶。用戶判定命令需要個(gè)別發(fā)任選位到用戶。 ????(Extended group)IPMSG_BR_ENTRY and IPMSG_BR_ABSENCE commands ????sends a group name by adding the new group name after the current ????command format character strings (Input '\0' between the current ????command and extended name). (附加組)IPMSG_BR_ENTRY 和 IPMSG_BR_ABSENCE 命令可以發(fā)送組名,采用在當(dāng)前命令格式串后添加組名。 (在當(dāng)前命令和附加名字之間添加‘\0’) ??2) Send/Receive Message 發(fā)送/接收信息 ????Send Message uses an IPMSG_SENDMSG command that can input a message ????in the extended area. 使用IPMSG_SENDMSG命令發(fā)送信息,采用在擴(kuò)展區(qū)域添加信息。 ????Receive Message sends back an IPMSG_RECVMSG command only ????if an IPMSG_SENDCHECKOPT flag is ON. Input the original packet number ????to the extended area. 如果IPMSG_SENDCHECKOPT位打開(kāi),接收信息回發(fā)IPMSG_RECVMSG命令。添加最初的包編號(hào)到擴(kuò)展區(qū)域中。 ????Broadcast Message Send uses an IPMSG_BOADCASTOPT command ????and an IPMSG_SENDMSG flag should be ON. 使用IPMSG_BOADCASTOPT命令發(fā)送廣播信息,IPMSG_SENDMSG位應(yīng)該打開(kāi)。 ????Auto-Send packet(absence notice) needs to be added to IPMSG_AUTORETOPT ????for ping-pong protection. If either one or another packet is ON, then ????confirmation/auto-send packet is not sent back. 自動(dòng)發(fā)送包(離開(kāi)通知)需要添加進(jìn)IPMSG_AUTORETOPTfor ping-pong 保護(hù),如果一個(gè)或者另外一個(gè)是打開(kāi) ?? ?狀態(tài),確認(rèn)/自動(dòng)發(fā)送包不回發(fā)。 ????Send Message Sealing needs to be an IPMSG_SECRETOPT packet ON. ????In this case, Receive Message sends an IPMSG_READMSG command. ????Input the original packet number to the extended area. 發(fā)送信息時(shí) 密封需要IPMSG_SECRETOPT包打開(kāi)。這種情況之下,接收信息發(fā)送一個(gè)IPMSG_READMSG命令。在 ?? ?附加區(qū)域加入最初包號(hào)。 ????(Additional IPMSG_NOADDLISTOPT) (附加 IPMSG_NOADDLISTOPT) ????When receiving an IPMSG_SENDMSG packet from a host that is ????not on your Send/Receive list, IPMsg will either confirm a host by ????sending an IPMSG_BR_ENTRY command or add a host name to ????the Send/Receive list. 當(dāng)接收文件時(shí),來(lái)自主機(jī)的IPMSG_SENDMSG 包沒(méi)有在你的發(fā)送/接收列表,飛鴿將確認(rèn)主機(jī)通過(guò)發(fā)送 ?? ?IPMSG_BR_ENTRY命令,或者添加主機(jī)名到發(fā)送/接收列表。 ????However, single-shot Message Send/Receive action needs to be avoided. ????Add an IPMSG_NOADDLISTOPT flag to an IPMSG_SENDMSG command. 但是,單脈沖信息發(fā)送/接收行為需要被禁止。添加IPMSG_NOADDLISTOPT位到IPMSG_SENDMSG命令。 ????(Additional IPMSG_READCHECKOPT from version-8 ) (附加IPMSG_READCHECKOPT來(lái)自版本-8) ????When an IPMSG_READMSG command contains an IPMSG_READCHECKOPT flag, ????IPMsg process is the same as IPMSG_SENDMSG with an ????IPMSG_SENDCHECKOPT flag. 當(dāng)IPMSG_READMSG命令含有IPMSG_READCHECKOPT位,飛鴿處理過(guò)程和IPMSG_SENDMSG同樣 具有IPMSG_SENDCHECKOPT位。 ????However, Send Message uses an IPMSG_ANSREADMSG command, ????not IPMSG_RECVMSG. 但是,發(fā)送信息使用IPMSG_ANSREADMSG命令,不是IPMSG_RECVMSG。 ??3) Message Send/Receive 亅encrypted extension (Added in the version-9 ) 信息發(fā)送/接收 加密擴(kuò)展(在版本-9中加入) ????Use the combination of Public-key(RSA) and common key(RC2/Blowfish). ????(Encrypted extension area is used in hex format.) 使用公鑰和普通密鑰的結(jié)合。 (加密擴(kuò)展區(qū)域使用十六進(jìn)制格式) ????(Public key acquisition)Send an IPMSG_GETPUBKEY command to Receive ????Message. Receive Message gets an IPMSG_ANSPUBKEY that ????means receiving RSA public key from Send Message. (公鑰獲得)發(fā)送IPMSG_GETPUBKEY命令接收文件。接收文件時(shí)得到意味著接收到發(fā)送端公鑰的 ?? ?命令I(lǐng)PMSG_ANSPUBKEY。 ????IPMSG_GETPUBKEY/IPMSG_ANSPUBKEY both require the value which is ????encryption capability (Exp. IPMSG_RSA_1024) flag uses "OR" at first ????part of extension ?IPMSG_GETPUBKEY/IPMSG_ANSPUBKEY 都需要加密容量位 在擴(kuò)展區(qū)域的開(kāi)始處使用OR。 ????In addition, In IPMSG_ANSPUBKEY, public key written as EE-NNNNNN ????E=Exponent丄N=method)devide by ':'. and Input the Fdelimiter '-' ????between E and N. 另外,在IPMSG_ANSPUBKEY中,公鑰按照以下形式EE-NNNNNN?E=Exponent丄N=method)用':'分開(kāi)。 ?? ?同時(shí),在E和N中間添加‘-’. ????This sequence can be skipped after the 2nd Send/Receive process by ????memorizing public key and encrypted data. ?? ?這個(gè)序列可以在第二次發(fā)送/接收處理時(shí)通過(guò)記錄公鑰和加密信息跳過(guò)。 ????(Encrypted message)After a sender creates a common key that is ????supported both sender and receiver, a common key can encrypt a message. ????In addition, a receiver's?public?key encrypts the common key. (加密信息)當(dāng)發(fā)送方建立一個(gè)發(fā)送方和接收方的普通密鑰后,它就能加密信息。 另外,接收方的公鑰加密普通密鑰。
????(Encrypted message transmission)?IPMSG_ENCRYPTOPT is used in ????IPMSG_SENDMSG.?At the first part of extension,?input the value which ????is?'or'?resoult from Convination of?public?key?and?common key type?. ????Then use common key which encrypt with?public?key devide by?':'. ????Then input message which is eccrypted by?public?key devide by?':'. ????If?both supports IPMSG_SIGN_XXX,?then add?':'?and?signeture. (加密信息傳輸)IPMSG_ENCRYPTOPT在IPMSG_SENDMSG中使用。在擴(kuò)展區(qū)域的開(kāi)始,加入 公鑰和普通密鑰的or值。然后使用使用以':'為分隔符的公鑰加密的普通密鑰。然后加入使用':'為分隔符的加密 ?? ?信息。如果都是IPMSG_SIGN_XXX,則添加‘:’和簽名。 ????Also,?In the method of encode padding,?PKCS#1ECB key is used?for?RSA, ????PKCS#5 CBC common key is used?for?RC2/blowfish. 當(dāng)然,在編碼填充的方法上,PKCS#1ECB被用于RSA,PKCS#5 CBC被用于RC2/blowfish。 ????Also,?The Packet related to Entry manifestation the capability of ????ecryption support?using?IPMSG_ENCRYPTOPT 當(dāng)然,包關(guān)聯(lián)于使用IPMSG_ENCRYPTOPT加密支持的容量的入口表現(xiàn) ??4)?Extension with?file?attachment(Available from version-9?) 文件附件擴(kuò)展(從版本-9時(shí)可以使用) ????An IPMSG_SENDMSG command with an IPMSG_FILEATTACHOPT flag?for ????File?transfer?(download permission)notification sends a message ????with attachment. ????Input?'\0'?after the message?and?attachment?file?data. ??? 包含IPMSG_FILEATTACHOPT位的IPMSG_SENDMSG文件傳輸命令標(biāo)志著有附件信息。 在信息后和附件信息后加入'\0' ????fileID:filename:size:mtime:fileattr[:extend-attr=val1 ????[,val2...][:extend-attr2=...]]:\a:fileID... ????(size,?mtime,?and?fileattr describe?hex?format. ??? If?a filename contains?':',?please?replace?with?"::".) (大小,修改時(shí)間,十六進(jìn)制描述的文件屬性,如果文件名中含有':',請(qǐng)用"::"替代。) ????When Receive Message downloads an attachment?file,?an IPMSG_GETFILEDATA ????command requests a data transmission packet to the TCP port that is the same number ????as the UDP sending port number.?Input packetID:fileID:?offset to the extended area. ????(Use all?hex?format.) 當(dāng)接收信息下載附件文件時(shí),IPMSG_GETFILEDATA命令請(qǐng)求和UDP一樣的TCP數(shù)據(jù)傳輸包端口。在擴(kuò)展區(qū)域 添加packetID:fileID:?offset(均使用十六進(jìn)制格式) ????File?Transfer side receives the request.?After recognizing that it's a correct request, ????then send the specified data (no format) 文件發(fā)送方收到請(qǐng)求。當(dāng)判定它是正確的請(qǐng)求之后發(fā)送指定數(shù)據(jù)。(無(wú)格式) ????When the data receiving side downloads a hierarchical attachment file, ????use an IPMSG_GETDIRFILES command and input a packetID:fileID ????to the extended area and send a data transmission request packet. ????(all hex format) 當(dāng)數(shù)據(jù)接收方下載劃分的附件文件時(shí),使用IPMSG_GETDIRFILES命令,并且將packetID:fileID寫(xiě)入擴(kuò)展區(qū)域, ?? ?發(fā)送數(shù)據(jù)傳輸請(qǐng)求包。(均使用十六進(jìn)制) ????Data sending side sends the following hierarchical data format. 數(shù)據(jù)發(fā)送方發(fā)送下面劃分的數(shù)據(jù)格式: ????header-size:filename:file-size:fileattr[:extend-attr=val1 ????[,val2...][:extend-attr2=...]]:contents-data ????Next headersize: Next filename... ????(All hex format except for filename and contetns-data) (除了文件名和內(nèi)容數(shù)據(jù)之外均使用十六進(jìn)制格式) ????header-size is from the beginning of header-size to the delimiter ':' ????that is before contents-data. extend-attr can be omitted and used multiple ????extended attributes. Use '=' for data input. 頭-大小是從頭-大小開(kāi)始到內(nèi)容數(shù)據(jù)前的分隔符':'結(jié)束。擴(kuò)展屬性可以忽略并且使用多擴(kuò)展屬性。使用'='for 數(shù) ?? ?據(jù)輸入。 ????When fileattr is IPMSG_FILE_DIR, IPMsg recognizes that it is automatically ????in the directory, the next file data is after the directory. ??? 當(dāng)文件屬性是IPMSG_FILE_DIR,飛鴿判定它是自動(dòng)在目錄中,下一個(gè)文件數(shù)據(jù)在目錄之后。 ????When fileattr is IPMSG_FILE_RETPARENT, IMPsg recognizes that it returns ????to the parent directory. In this case, File name is always "." and the attribute ????value is the current directory data. ??? 當(dāng)文件屬性是IPMSG_FILE_RETPARENT,飛鴿判定它返回到父目錄。在這種情況之下,文件名總是'.'并且屬性值 ??? 是當(dāng)前目錄信息。 ????Sending process starts from the attachment directly and returns the ????IPMSG_FILE_RETPARENT command to the attachment directory. ??? 發(fā)送過(guò)程直接開(kāi)始于附件并且返回IPMSG_FILE_RETPARENT命令到附件目錄。 ????Add an IPMSG_FILEATTACHOPT flag for an Entry packet to support the ????attachment file. ??? 添加IPMSG_FILEATTACHOPT位for入口包來(lái)支持附件文件。 ??5) Other commands ??? 其他命令 ????When acquiring different versions, send an IPMSG_GETINFO command. ????Receiving side sends the version information character string to ????extended area. ??? 當(dāng)獲得不同的版本時(shí),發(fā)送IPMSG_GETINFO命令。接收方發(fā)送版本信息字符串到擴(kuò)展區(qū)域。 ????Send an IPMSG_GETABSENCEINFO command for acquiring an absence message. ????Receiving side sends an IPMSG_SENDABSENCEINFO back if the status is absence mode. ????If the status is not absence mode, a character string "Not absence mode" will be sent back. ??? 發(fā)送IPMSG_GETABSENCEINFO命令來(lái)獲取離開(kāi)信息,如果接收方是離開(kāi)狀態(tài),則回發(fā)IPMSG_SENDABSENCEINFO。 ??? 如果狀態(tài)不是離開(kāi)狀態(tài),字符串"Not absence mode"將會(huì)被發(fā)送。 ??6) Confirmation/Retry ??? 確認(rèn)/重發(fā) ????If a confirmation packet for IPMSG_SENDMSG or IPMSG_RECVMSG is not delivered ????within a specified time, then it will be sent again. ????A number of retry actions or interval period is depended on the current condition. ??? 如果IPMSG_SENDMSG 或者 IPMSG_RECVMSG的確認(rèn)包沒(méi)有在指定時(shí)間內(nèi)投遞,它將會(huì)被重發(fā)。 ????重發(fā)行為或者間隔的時(shí)間段將依賴(lài)于當(dāng)前的條件。
4. Other ??? 其他 ??1) Linefeed ??? 換行 ????Linefeed characters in Send Message is standardized with UNIX type ('0x0a'). ????Please change if needed. ??? 在發(fā)送信息中的換行符是以Unix類(lèi)型為標(biāo)準(zhǔn)的。如果需要可以改變。 ??2) Delimiter ':' ??? 分隔符 ????':' is used as a delimiter. You can't use?this?delimiter?for?user name ????and?host name. ??? ':'被用做分隔符。你不可以在用戶名和主機(jī)名中使用這個(gè)分隔符。
??? If?the use/host names contain a?':',?please?replace?with another sign, ????for?an example?';'. ??? 如果用戶/主機(jī)中含有':',請(qǐng)使用其他符號(hào)替換,例如';'. ????Although?using?this?delimiter?isn't?problem?as?yet,?I?may?create?an? ????escape?sequence.? ??? 盡管使用這個(gè)分隔符到目前為止還沒(méi)有問(wèn)題,但是我可能創(chuàng)建了一個(gè)逃避的序列。 ? ??3)?Kanji?codes?
??? 日文編寫(xiě)
????SJIS? 5.?Contact?e-mail?address?
??? 聯(lián)系郵箱地址
????E-Mail?[email]shirouzu@h.email.ne.jp[/email]? Note?
注釋 ????See?ipmsg.h?for?command?codes. ? ? 參見(jiàn)ipmsg.h中命令的代碼。? ????Please?e-mail?me?your?comments?and?suggestions. ? ? 請(qǐng)把你的建議使用郵件發(fā)送給我。 |