企業(yè)即時(shí)通外文文獻(xiàn)翻譯_第1頁
已閱讀1頁,還剩17頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

1、<p>  畢業(yè)設(shè)計(jì)(論文)外文參考文獻(xiàn)翻譯</p><p>  計(jì)算機(jī)科學(xué)與信息工程系 系(院) 2008 屆</p><p>  題 目 企 業(yè) 即 時(shí) 通 </p><p>  Instant Messaging for Enterprises </p><p&g

2、t;  課題類型 技術(shù)開發(fā) 課題來源 自 選 </p><p>  學(xué)生姓名 許帥 專業(yè)班級(jí) 04計(jì)算機(jī)科學(xué)與技術(shù) </p><p>  指導(dǎo)老師 王占中 職 稱 工程師 </p><p>  完成日期: 2008年 4 月 6 日</p><p><b

3、>  目 錄</b></p><p>  Instant Messaging for Enterprise1</p><p><b>  1. Tips1</b></p><p>  2. Introduction1</p><p>  3. First things first2</p

4、><p>  4.The While-Accept loop4</p><p>  5. Per-Thread class6</p><p>  6. The Client class7</p><p><b>  企業(yè)即時(shí)通9</b></p><p><b>  1.提示9<

5、;/b></p><p><b>  2.簡介9</b></p><p>  3.首先第一件事10</p><p><b>  4.監(jiān)聽循環(huán)11</b></p><p><b>  5.單線程類13</b></p><p><b>

6、;  6.用戶端類14</b></p><p>  Instant Messaging for Enterprise</p><p><b>  1. Tips</b></p><p>  If Java is, in fact, yet another computer programming language, you may

7、 question why it is so important and why it is being promoted as a revolutionary step in computer programming. The answer isn’t immediately obvious if you’re coming from a traditional programming perspective. Although Ja

8、va is very useful for solving traditional standalone programming problems, it is also important because it will solve programming problems on the World Wide Web. What is the Web?</p><p>  The Web can seem a

9、bit of a mystery at first, with all this talk of “surfing,” “presence,” and “home pages.” It’s helpful to step back and see what it really is, but to do this you must understand client/server systems, another aspect of c

10、omputing that is full of confusing issues. The primary idea of a client/server system is that you have a central repository of information, some kind of data, often in a database。That you can distribute on demand to some

11、 set of people or machines. The basic con</p><p>  Building a java chat server</p><p>  Should I take this tutorial?</p><p>  in this tutorial, we will build both the server and cli

12、ent sides of a simple chat system this tutorial is for someone with little or no experience doing networking programming. We’ll cover topics such as networking and multithreading in enough detail so that you'll be ab

13、le to follow the examples, even if you have little or no experience doing this kind of programming. You will, however, need to be familiar with basic object-oriented programming in the Java language. In this tutorial, yo

14、u'll buil</p><p>  2. Introduction</p><p>  We'll also examine some of the limitations of this framework and explore ways of getting around them.</p><p>  What is a connecti

15、on-oriented server?</p><p>  Generally speaking, the job of any server is to provide a centralized service. However, there are many different ways of providing services, and many different ways to structure

16、the communications. Chat is roughly described as a connection-oriented service, because a user establishes a connection and maintains that connection, sending and receiving text for the duration of the session. We'll

17、 be creating a stripped-down, connection-oriented server. Learning the basic framework will help you a gre</p><p>  Why create from scratch?</p><p>  In creating this prototype server, we'll

18、 be using nothing more than the basic packages built into every Java implementation. This allows us to explore server programming at the very lowest level possible in the Java language.</p><p>  There are ce

19、rtainly many systems available that can take care of many of these networking details for you. In many cases, the best real-world solution is to use an existing framework, because it often provides useful features such a

20、s fault-tolerance, load-balancing.</p><p>  What does the server do?</p><p>  Before we describe the Listener class, we'll describe the server. Doing so has a certain chronological elegance,

21、 because in our running system, the server will have to start before any of the clients can connect to it.</p><p>  Our server will be a stand-alone program -- a single Java process running on its own machin

22、e. It won't require any support software other than a Java virtual machine. And it won't require a Web server or application server, although a Web server or application server will likely be used to serve the cl

23、ient applet to the client.</p><p>  More advanced server systems often embed the server code within a larger framework. This framework might be used to supply features such as load balancing, special librari

24、es for handling large numbers of clients, process migration, and database services。However, our example is going to stand all by itself. It will take care of all networking responsibilities on its own. As we'll see,

25、this isn't very hard.</p><p>  3. First things first</p><p>  Listening on a port</p><p>  The first thing we have to do is to get ready to receive incoming connections. To do t

26、his, we must listen on a port.</p><p>  A port can be thought of as an address within a single computer. Remember that often a single machine might serve as a Web server, a chat server, an FTP server, and se

27、veral other kinds of servers at the same time. Because of this, a connection to a server needs to specify not only the address of the machine itself, but also the particular service within the machine. This internal addr

28、ess is a port and is represented by a single integer between 1 and 65535.</p><p><b>  Sockets</b></p><p>  Our communications between client and server will pass through a Java objec

29、t called a Socket. Sockets are not at all Java-specific; the term is taken directly from the terminology of general IP (Internet Protocol) network programming. In Java programs, a Socket object is simply a wrapper around

30、 the low-level。</p><p>  The most important thing to know about a Socket object is that it contains (among other things) two Streams. One is for reading data coming in, and the other is for writing data out.

31、That is to say, a Socket has an InputStream and an OutputStream.(If these Stream classes are unfamiliar to you, then suffice it to say that they are objects used for reading and writing data, often as a stream of bytes.

32、If you don't know about them yet,you really should. See the java.io package for more information.)</p><p>  So, now we get to the first of our seven elements, the Listener Class. We'll call it Server

33、.java.</p><p>  The next few panels will show the essential elements of this class: the constructor and the main() routine.</p><p>  The constructor for Server takes a single parameter -- a port

34、 number. This tells us what port to listen on when we are ready to start accepting connections.</p><p>  Here is the constructor:</p><p>  public Server( int port ) throws IOException {</p>

35、;<p>  // All we have to do is listen</p><p>  listen( port );</p><p><b>  }</b></p><p>  The main() routine</p><p>  We'll also include a main()

36、 routine so that this Server class can be used as its own stand-alone application. In practice, you might be embedding your basic server code in something larger, in which case you already have a main(). But for our purp

37、oses, the Server is all there is. Here's the main() routine:</p><p>  // Main routine</p><p>  // Usage: java Server >port<</p><p>  static public void main( String args[]

38、 ) throws Exception {</p><p>  // Get the port # from the command line</p><p>  int port = Integer.parseInt( args[0] );</p><p>  // Create a Server object, which will automatically

39、begin</p><p>  // accepting connections.</p><p>  new Server( port );</p><p><b>  }</b></p><p>  Now that we're all ready to listen, we'll continue

40、to the next section to see how we accept new connections and what we do with them.</p><p>  4.The While-Accept loop</p><p>  We're ready to start accepting network connections from our clien

41、ts. Here's how the chat is going to work.</p><p>  We mentioned above that the Java language provides an object called a Socket, which represents a connection to a program somewhere else and through whic

42、h data can pass.</p><p>  But how do we get this socket in the first place? A client, almost by definition, initiates the connection to a server. Therefore, the first job of a server is to wait for a connect

43、ion to come in. That is, we need something to give us the Sockets that are connected to our clients.</p><p>  That's where the ServerSocket comes in. This is an object whose job is simple: listen on a po

44、rt and when a new connection comes in, create a Socket that represents that new connection.</p><p>  Accepting Sockets</p><p>  Remember that your program will potentially be serving many client

45、s from all over the Internet. And these clients will be connecting to your server without regard to each other.That is, there's no way to control the order, or the timing, with which the connections are arriving. As

46、we'll see later, multithreading is an excellent way to deal with these connections once they have come in. However, we're still trying to deal with the connections as they arrive.</p><p>  Here's

47、 what it looks like, in the abstract:</p><p>  // start listening on the port</p><p>  ServerSocket ss = new ServerSocket( port );</p><p>  // loop forever</p><p>  whi

48、le (true) {</p><p>  // get a connection</p><p>  Socket newSocket = ss.accept();</p><p>  // deal with the connection</p><p><b>  // ...</b></p><

49、;p><b>  }</b></p><p>  The accept() routine is the key here. When this method of ServerSocket is called, it returns a new Socket object that represents a new connection that has come in. After

50、 you've dealt with this connection, you call accept() and get the next one. This way, no matter how fast connections are coming, and no matter how many processors or network interfaces your machine has, you get the c

51、onnections one at a time. (And if there aren't any connections coming in at the moment, then the accept () routine </p><p>  Serialization is a useful way, in general, to deal with things that are happen

52、ing simultaneously. A potential drawback, however, is that it can remove parallelism? That is to say serialization can prevent us from saving time by working on multiple things at the same time. In the code above, while

53、the program is dealing with one connection, other connection might be piling up.</p><p>  But serialization is not a problem for us because each time a connection comes in, we're going to create a new th

54、read to deal with it. Once the new thread is created, it can go off and deal with the new connection, and our while-accept loop can go back to accepting new connections. If the act of creating this new thread is fast eno

55、ugh, then the connections won't pile up.</p><p><b>  The code</b></p><p>  Let's take a look at the code that does all this. The code below takes care of the things we've

56、 been talking about: listening on a port, accepting new connections, and creating threads to deal with them. It also does a few other things that will be useful later. Let's take a look:</p><p>  private

57、 void listen( int port ) throws IOException {</p><p>  // Create the ServerSocket</p><p>  ss = new ServerSocket( port );</p><p>  // Tell the world we're ready to go</p>

58、<p>  System.out.println( "Listening on "+ss );</p><p>  // Keep accepting connections forever</p><p>  while (true) {</p><p>  // Grab the next incoming connection&

59、lt;/p><p>  Socket s = ss.accept();</p><p>  // Tell the world we've got it</p><p>  System.out.println( "Connection from "+s );</p><p>  // Create a DataOut

60、putStream for writing data to the</p><p>  // other side</p><p>  DataOutputStream dout = new DataOutputStream( s.getOutputStream() );</p><p>  // Save this stream so we don't n

61、eed to make it again</p><p>  outputStreams.put( s, dout );</p><p>  // Create a new thread for this connection, and then forget</p><p>  // about it</p><p>  new Serve

62、rThread( this, s );</p><p><b>  }</b></p><p><b>  }</b></p><p>  The last line of this listing creates a thread to deal with the new connection. This thread

63、is an object called a ServerThread, which is the topic of the next section.</p><p>  5. Per-Thread class</p><p>  What is a thread?</p><p>  Two of the Java language's main stre

64、ngths are networking and multithreading. That is not to say that other languages don't support these functions -- they do. But the abstractions that the Java language uses to provide these features are particularly e

65、legant, especially for a commercial language.</p><p>  A thread is generally defined as a separate line of control within a single process. What this really means is that a multithreaded program has multiple

66、, semi-autonomous activities going on inside of it at the same time.</p><p>  Multithreading is similar to the concepts of a task and multitasking, except that the multiple threads within a program all share

67、 the same data space. This makes it easier for them to share data directly and efficiently -- and it also makes it easier for them to mess each other up.</p><p>  Why use multithreading?</p><p>

68、  A detailed discussion of threads is beyond the scope of this tutorial. There are a few reasons why you'd want to use threads in your program, but there is one reason most pertinent to the construction of a chat ser

69、ver: input/output.</p><p>  Your chat server is communicating (in a sense) with the users at the client. Users are usually much slower than servers, which means that your server code is going to spend a lot

70、of time simply waiting for users to say things. And you never know who is going to say something first. If you have a single thread, and it's waiting for user #0 to say something, then it's not going to know that

71、 users #1 through #10 are talking like crazy.</p><p>  For this reason, we're going to create a thread for each user connected to the system. The advantage of multithreading is that when one thread is li

72、stening for a slow user to say something, it essentially goes to sleep until something comes in from that user. In the meantime, another thread can be receiving data from another user. In effect, multithreading allows us

73、 to respond as quickly as we can to each user.</p><p>  In Java programs, any class can be made into a thread by implementing the Runnable interface. Or you can simply subclass from the class java.lang.Threa

74、d. We have chosen the latter route, for no particular reason:</p><p>  public class ServerThread extends Thread</p><p><b>  {</b></p><p><b>  // ...</b></

75、p><p><b>  }</b></p><p>  The Socket object is essential, because the whole purpose of this thread is to use a socket to communicate with the other side.</p><p>  Here'

76、s the code::</p><p>  // Constructor.</p><p>  public ServerThread( Server server, Socket socket ) {</p><p>  // Save the parameters</p><p>  this.server = server;</

77、p><p>  this.socket = socket;</p><p>  // Start up the thread</p><p><b>  start();</b></p><p><b>  }</b></p><p>  6. The Client class&

78、lt;/p><p>  Now that we've gotten to the point where we're going to be talking to the client, we should talk a little bit about our communication protocol.</p><p>  Every client/server syst

79、em has a communications protocol, which is nothing more than the format you use to send the data back and forth. The protocol can be so simple it hardly deserves the title of protocol, or it can be a sophisticated standa

80、rd that has been ratified by consortia all over the world. Either way, it's a protocol.</p><p>  We're going to create our own protocol, because in the Java language it's very easy to do,and beca

81、use there's little for us to gain from using an existing standard. Our protocol will be very simple.</p><p>  The Java language has a pair of extremely useful classes called DataInputStream and DataOutpu

82、tStream. These classes allow you to read and write low-level data objects (like integers and strings) to a stream, without having to consider the format in which they are written. Because these classes use the same forma

83、t, and because this format doesn't change, you can be sure that an integer written to a DataOutputStream will be properly read</p><p>  from the DataInputStream at the other end.</p><p>  So

84、 our protocol will be this:</p><p>  * When a user types something into their chat window, their message will be sent as a string through a DataOutputStream.</p><p>  * When the server receives

85、a message, through a DataInputStream, it will send this same message to all users, again as a string through a DataOutputStream.</p><p>  * The users will use a DataInputStream to receive the message.</p&

86、gt;<p>  The Client class:</p><p>  Believe it or not, we've finished building the server side of our chat system. We have one object (Server) listening for new connections and a bunch of per-conn

87、ection objects (ServerThread) dealing with the connections themselves.</p><p>  Our client is going be an applet, because we're assuming that one of the reasons you're using the Java language is that

88、 you want your program to be available on a Web page.</p><p>  The Constructor: Set up the interface:</p><p>  // Constructor</p><p>  public Client( String host, int port ) {</p

89、><p>  // Set up the screen</p><p>  setLayout( new BorderLayout() );</p><p>  add( "North", tf );</p><p>  add( "Center", ta );</p><p>  

90、// We want to receive messages when someone types a line</p><p>  // and hits return, using an anonymous class as</p><p>  // a callback</p><p>  tf.addActionListener( new ActionLis

91、tener() {</p><p>  public void actionPerformed( ActionEvent e ) {</p><p>  processMessage( e.getActionCommand() );</p><p><b>  }</b></p><p><b>  } );&

92、lt;/b></p><p><b>  // ...</b></p><p><b>  企業(yè)即時(shí)通</b></p><p><b>  1.提示</b></p><p>  Java作為另外一種計(jì)算機(jī)編程語言,你可能會(huì)問為什么它是如此重要,為什么它在計(jì)算機(jī)編程方面被宣

93、傳為一項(xiàng)革命性的一步。如果你以傳統(tǒng)的編程態(tài)度來看答案是不明顯的。雖然java解決傳統(tǒng)的單機(jī)編程問題非常有用的,但它解決網(wǎng)絡(luò)編程問題也是非常有用的。</p><p>  什么是web?當(dāng)“沖浪”,“在線”,“主頁”被談?wù)摰臅r(shí)候web好像有點(diǎn)神秘。要想解開web的神秘,你必須了解客戶機(jī)/服務(wù)器系統(tǒng),另一個(gè)關(guān)于計(jì)算機(jī)的充滿困惑的問題。客戶機(jī)/服務(wù)器系統(tǒng)的主要構(gòu)思是一個(gè)中央儲(chǔ)存庫的資料,往往是放在數(shù)據(jù)庫中的一些資料,然后

94、可以滿足一些人或者是機(jī)器的需求。客戶機(jī)/服務(wù)器的基本概念并不是那么復(fù)雜,這個(gè)概念的提出你有一個(gè)單一的服務(wù)器試圖在同一時(shí)刻服務(wù)于許多客戶。</p><p>  建立一個(gè)語音聊天室服務(wù)器:</p><p>  我應(yīng)該借這個(gè)補(bǔ)習(xí)一下嗎?</p><p>  在本教程中,我們將建立兩個(gè)服務(wù)器和客戶端雙方的一個(gè)簡單的聊天室,系統(tǒng)中的補(bǔ)習(xí),是為某人與很少或沒有經(jīng)驗(yàn),做網(wǎng)絡(luò)規(guī)劃。

95、,如果我們涵蓋的課題如網(wǎng)絡(luò)和多線程不夠詳細(xì),將在以后列舉例子,即使你有很少或沒有做這樣的項(xiàng)目的經(jīng)驗(yàn)。不過你需要熟悉基本的面向?qū)ο缶幊淘贘ava語言。在本教程中,你將建立一個(gè)簡單的,集中的,面向連接Java服務(wù)器。制造這樣一臺(tái)服務(wù)器,你將學(xué)到一個(gè)基本框架,不過需要長時(shí)間的努力。</p><p><b>  2.簡介</b></p><p>  我們還將研究一些關(guān)于此框架

96、的局限性并探索規(guī)避它們。什么是面向連接服務(wù)器?</p><p>  一般來說,工作的任何服務(wù)器是要提供一個(gè)集中式的服務(wù)。但是,也有許多不同的方式提供服務(wù),并有很多不同的方式來構(gòu)建通信服務(wù)。聊天,大約是被形容為面向連接服務(wù)的,因?yàn)橐粋€(gè)用戶建立了聯(lián)接并保持連接,發(fā)送和接受文本。我們將創(chuàng)造一個(gè)剝離下來,面向連接服務(wù)器,學(xué)習(xí)的基本框架將幫助你在未來大量制造其他面向連接服務(wù)器。為什么從零開始創(chuàng)造?我們將用基本包建立每一個(gè)j

97、ava接口來創(chuàng)造這個(gè)原型服務(wù)器,這讓我們?cè)诜浅5偷乃接胘ava語言探索服務(wù)器編程成為可能。當(dāng)然有很多提供網(wǎng)絡(luò)細(xì)節(jié)的系統(tǒng),在許多情況下,最好的真實(shí)世界的解決辦法是使用現(xiàn)有的架構(gòu),因?yàn)樗3L峁┝擞杏玫墓δ?,如容錯(cuò),負(fù)載平衡。服務(wù)器是做什么呢?</p><p>  在我們描述監(jiān)聽類之前,我們將描述一下服務(wù)器。這樣做有一定的順序排列的優(yōu)雅,因?yàn)樵谟脩暨B接服務(wù)器之前,服務(wù)器必須啟動(dòng)。我們的服務(wù)器是一個(gè)單獨(dú)的程序---一

98、個(gè)單獨(dú)的java運(yùn)行在獨(dú)立的機(jī)器上,除了java虛擬機(jī)它不再需要其它的任何軟件,雖然Web服務(wù)器或應(yīng)用服務(wù)器將可能被用來服務(wù)于客戶端程序到客戶端,但它不再需求web服務(wù)器或應(yīng)用程序服務(wù)器。更先進(jìn)的服務(wù)器系統(tǒng)往往嵌入服務(wù)器代碼在一個(gè)較大的范圍內(nèi)。</p><p>  在此框架內(nèi)都有可能被用來供給功能,如負(fù)載平衡,特別圖書館,為處理大量的客戶,進(jìn)程遷移,以及數(shù)據(jù)庫services.however ,我們的例子是要經(jīng)得

99、起任何掣肘。它會(huì)照顧所有聯(lián)網(wǎng)的責(zé)任,其自己的。正如我們將會(huì)看到的,這是不是很辛苦。</p><p><b>  3.首先第一件事</b></p><p><b>  監(jiān)聽一個(gè)端口:</b></p><p>  首先,我們必須要做的是做好準(zhǔn)備接受連接,要做好這一點(diǎn),我們必須要監(jiān)聽一個(gè)端口,</p><p&

100、gt;  一個(gè)端口被看作單獨(dú)一個(gè)計(jì)算機(jī)的地址,往往是一個(gè)單一的機(jī)器,可作為網(wǎng)絡(luò)服務(wù)器,聊天服務(wù)器FTP服務(wù)器,和幾種服務(wù)器一樣,正因?yàn)槿绱耍粋€(gè)連接到一臺(tái)服務(wù)器,不僅需要指明地址,該機(jī)器本身,而且還要指明服務(wù)器。這個(gè)內(nèi)部的端口是0到65536之間的一個(gè)。</p><p><b>  套接字:</b></p><p>  客戶機(jī)和服務(wù)器之間的通信是通過建立一個(gè)叫做soc

101、ket的對(duì)象來完成的,socket是直接來自網(wǎng)絡(luò)編程,在java編程中,一個(gè)socket對(duì)象被程序員使用多年,因?yàn)樗容^清晰的比較方便,也許這就是java比c語言方便的原因吧。</p><p>  最重要的是要了解socket對(duì)象包含了兩個(gè)流對(duì)象,一個(gè)是用來接受數(shù)據(jù),另外一個(gè)是用來發(fā)送數(shù)據(jù),也就是說一個(gè)socket對(duì)象包含inputstream和outputstream;(如果你對(duì)這些關(guān)于流的類還不熟悉,你只要知

102、道他們是用來發(fā)送和接收數(shù)據(jù)流的就可以了,如果你真的不知道它們,那可以查詢java.io中的流類來獲取更多的信息。</p><p>  現(xiàn)在然我們開始介紹七個(gè)類中的一個(gè),監(jiān)聽類----server.java</p><p>  下面的幾個(gè)版面我們來介紹這個(gè)類的基本的元素:構(gòu)造器和main()實(shí)例。</p><p>  Server類的構(gòu)造器需要一個(gè)單一的參數(shù)---端口

103、號(hào)。這就告訴我們當(dāng)我們開始準(zhǔn)備接受連接的時(shí)候那些端口是怎么監(jiān)聽的。下面就是構(gòu)造器:</p><p>  public Server( int port ) throws IOException {</p><p>  // All we have to do is listen</p><p>  listen( port );}</p><p&

104、gt;  Main()方法例程:</p><p>  Server類要作為一個(gè)單獨(dú)的應(yīng)用程序,它必須包含一個(gè)main()方法,在你有了</p><p>  main()方法后,你可以添加你自己的基本應(yīng)用服務(wù)器代碼,這就是我們的服務(wù)器我們要完成的目的。</p><p>  // Main routine</p><p>  // Usage:

105、java Server >port<</p><p>  static public void main( String args[] ) throws Exception {</p><p>  // Get the port # from the command line</p><p>  int port = Integer.parseInt(

106、args[0] );</p><p>  // Create a Server object, which will automatically begin</p><p>  // accepting connections.</p><p>  new Server( port ); }</p><p>  現(xiàn)在我們開始監(jiān)聽,下一節(jié)我們將

107、繼續(xù)介紹是如何接受連接的,看看我們是如何處理它們的。</p><p>  我們已經(jīng)準(zhǔn)備從我們的客戶接受連接,這就是說料體內(nèi)是如何進(jìn)行的。</p><p><b>  4.監(jiān)聽循環(huán)</b></p><p>  上面我們提到了java中一個(gè)叫做套接字的對(duì)象,它代表著通過建立從別的地方的應(yīng)用程序接收數(shù)據(jù)。</p><p>  

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 眾賞文庫僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論