今天早上,我问了一个与插座有关的问题,但这是另一种动物,所以我决定做一个单独的帖子。
我现在很清楚什么是套接字,以及它们的用途。我试图了解它们与Java、Java以及所谓的Netty或MINA之类的网络API之间的关系。
再次感谢你的帮助!
发布于 2011-01-24 20:01:52
套接字是所有基于Java网络的基础,
对于IP协议,是的。可能有一些特殊的库,例如用于串口通信的JavaComm,以及用于各种非套接字的电信协议的贾恩
NIO是基于Java的网络的基础吗?
不完全是,插座是。见前面的答案。NIO是在套接字和其他东西的基础上建立起来的。最重要的部分可能是NIO允许您在一个线程中侦听多个套接字上的事件,并执行非阻塞IO。Netty和Mina利用了NIO。
NIO代表New /O,是Java1.4中引入的用于执行IO的新API。不过,除了socket IO之外,它还做了很多其他的事情。可以说,NIO将允许您以更复杂的代价更有效地执行套接字IO。
是否可以使用套接字(据我理解,或网络层构造)发送(按字节计算)符合较高协议的消息,如TCP或UDP,
不是的。套接字允许您访问诸如TCP或UDP之类的传输协议(实际上,Java中只有TCP和UDP,将来可能也是SCTP )。您可以构建在TCP/UDP之上工作的东西,而不是自己实现TCP/UDP (除非您希望在TCP或UDP之上实现一个IP堆栈--这就是几个VPN或调优协议所做的)。
HTTP,FTP等等?
是的,这些通常是在TCP之上工作的,您可以通过使用java中的套接字来实现HTTP、FTP和其他运行在TCP/UDP之上的协议--这就是套接字的用途。
发布于 2011-01-24 19:37:02
套接字是用于网络的Java基本构建块。它们只允许您执行基本操作:打开连接(TCP或UDP)、写入或读取字节以及关闭连接。它们还通过抛出异常来处理失败案例。在OSI模型中,这是第四层(传输)。
更高级别的API构建在套接字之上,允许执行更有趣的任务,如HTTP连接或SSL通信。
Java是第一个Java的新版本。就网络而言,它实际上为非阻塞套接字带来了一个新的API。
更高级别的API构建在Java和/或Java之上。
https://stackoverflow.com/questions/4784873
复制相似问题