文章来源:ASPCN 作者:孙雯</p> Socket传输形式
Sockets有两种主要的操作方式:面向连接的和无连接的.面向连接的sockets操作就像一部电话,他们必需建立一个连接和一人呼叫.所有的事情在到达时的顺序与它们动身时的顺序时一样.无连接的sockets操作就像是一个邮件投递,,没有什么保证,多个邮件可能在到达时的顺序与动身时的顺序不一样.
到底用哪种形式是邮应用程序的需要决定的.假设可靠性更重要的话,用面向连接的操作会好一些.比如文件效劳器需要他们的数据的正确性和有序性.假设一些数据丧失了,系统的有效性将会失去.一些效劳器,比如间歇性地发送一些数据块.假设数据丢了的话,效劳器并不想要再重新发过一次.因为当数据到达的时候,它可能已经过时了.确保数据的有序性和正确性需要额外的操作的内存消耗,额外的费用将会降低系统的回应速率.
无连接的操作使用数据报协议.一个数据报是一个独立的单元,它包含了所有的这次投递的信息.把它想象成一个信封吧,它有目的地址和要发送的内容.这个形式下的socket不需要连接一个目的的socket,它只是简单地投出数据报.无连接的操作是快速的和高效的,但是数据安全性不佳.
面向连接的操作使用TCP协议.一个这个形式下的socket必需在发送数据之前与目的地的socket获得一个连接.一旦连接建立了,sockets就可以使用一个流接口:翻开-读-写-关闭.所有的发送的信息都会在另一端以同样的顺序被接收.面向连接的操作比无连接的操作效率更低,但是数据的安全性更高.
SUN不时是网络建立的支持者,所以在Java中支持sockets就缺乏为奇了.实际上,Java降低了建立一个sockets程序的难度.每一个传输形式都被封装到了不同的类中.面向连接的类将会首先被我们讨论.
Sockets有两种主要的操作方式:面向连接的和无连接的.面向连接的sockets操作就像一部电话,他们必需建立一个连接和一人呼叫.所有的事情在到达时的顺序与它们动身时的顺序时一样.无连接的sockets操作就像是一个邮件投递,,没有什么保证,多个邮件可能在到达时的顺序与动身时的顺序不一样.
到底用哪种形式是邮应用程序的需要决定的.假设可靠性更重要的话,用面向连接的操作会好一些.比如文件效劳器需要他们的数据的正确性和有序性.假设一些数据丧失了,系统的有效性将会失去.一些效劳器,比如间歇性地发送一些数据块.假设数据丢了的话,效劳器并不想要再重新发过一次.因为当数据到达的时候,它可能已经过时了.确保数据的有序性和正确性需要额外的操作的内存消耗,额外的费用将会降低系统的回应速率.
无连接的操作使用数据报协议.一个数据报是一个独立的单元,它包含了所有的这次投递的信息.把它想象成一个信封吧,它有目的地址和要发送的内容.这个形式下的socket不需要连接一个目的的socket,它只是简单地投出数据报.无连接的操作是快速的和高效的,但是数据安全性不佳.
面向连接的操作使用TCP协议.一个这个形式下的socket必需在发送数据之前与目的地的socket获得一个连接.一旦连接建立了,sockets就可以使用一个流接口:翻开-读-写-关闭.所有的发送的信息都会在另一端以同样的顺序被接收.面向连接的操作比无连接的操作效率更低,但是数据的安全性更高.
SUN不时是网络建立的支持者,所以在Java中支持sockets就缺乏为奇了.实际上,Java降低了建立一个sockets程序的难度.每一个传输形式都被封装到了不同的类中.面向连接的类将会首先被我们讨论. |