如今我不再如痴如醉,也不想再将远方的美以及自己的快乐和爱的人分享,我的心不再是春天,我的心已是夏天。我比当年更内敛,更深刻,更洗练,我更心存感激。我孤独,但不为寂寞所困。我乐于让阳光晒熟,我的眼光满足于所见的食物,我学会了看,世界变美了。——赫尔曼·黑塞
Java中的Socket编程
Socket是基于网络的传输层所存在的,而其中包括了TCP协议,UDP协议,可能根据我们应用的需求不同,我们也将基于不同的协议,为了安全我们用TCP,为了效率我们用UDP。
今天主要谈一谈基于TCP协议的编程,所谓socket 通常也称作”套接字“,用于描述IP地址和端口,是一个通信链的句柄。应用程序通常通过”套接字”向网络发出请求或者应答网络请求。
对于信息传输或者文件传输,我们将他们分为服务端和客户端。我们在API中可以看到两个关于他们的类分别是:ServerSocket和Socket,不同的类型,我们分别创建不同的对象。
Socket的API:
java.net.Socket继承于java.lang.Object,有八个构造器,同时我们用多的三个方法分别是,
. Accept方法用于产生”阻塞”,直到接受到一个连接,并且返回一个客户端的Socket对象实例。”阻塞”的意思就是,它使程序运行暂时”停留”在这个地方,直到一个会话产生,然后程序继续,我们通常”阻塞”是由循环产生的。
. getInputStream方法得到连接输入,同时返回一个InputStream对象实例。
. getOutputStream方法得到连接的另一端将得到输入,同时返回一个OutputStream对象实例。
ServerSocket的API:
ServerSocket(int port) ~创建绑定到特定端口的服务器套接字。
所以我们可以理解为,我们首先在服务端创建ServerSocket对象,同时传入我们想绑定的参数,接下来我们用这个对象调用Accept的方法接收,想要与我们连接的客户端对象,然后利用接受的这个对象利用IO相关知识进行其他的传输如上几个方法是重要且常用的。
领取专属 10元无门槛券
私享最新 技术干货