Java中的Socket编程

如今我不再如痴如醉,也不想再将远方的美以及自己的快乐和爱的人分享,我的心不再是春天,我的心已是夏天。我比当年更内敛,更深刻,更洗练,我更心存感激。我孤独,但不为寂寞所困。我乐于让阳光晒熟,我的眼光满足于所见的食物,我学会了看,世界变美了。——赫尔曼·黑塞

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相关知识进行其他的传输如上几个方法是重要且常用的。

  • 发表于:
  • 原文链接http://kuaibao.qq.com/s/20180203G00FVX00?refer=cp_1026
  • 腾讯「云+社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 yunjia_community@tencent.com 删除。

扫码关注云+社区

领取腾讯云代金券