您现在的位置是:首页 > 学无止境 > java > java

Java中ServerSocket与Socket的区别!

张肖龙2018-10-28java人已围观

1.ServerSocket类 

创建一个ServerSocket类,同时在运行该语句的计算机的指定端口处建立一个监听服务,如: 

ServerSocket MyListener=new ServerSocket(600); 

这里指定提供监听服务的端口是600,一台计算机可以同时提供多个服务,这些不同的服务之间通过端口号来区别,不同的端口号上提供不同的服务。

为了随时监听可能的Client请求,执行如下的语句: 

Socket LinkSocket=MyListener.accept(); 

该语句调用了ServerSocket对象的accept()方法,这个方法的执行将使Server端的程序处于等待状态,程序将一直阻塞直到捕捉到一个来自Client端的请求,并返回一个用于与该Client通信的Socket对象Link-Socket。

此后Server程序只要向这个Socket对象读写数据,就可以实现向远端的Client读写数据。结束监听时,关闭ServerSocket对象: 

Mylistener.close(); 

2.Socket类 

当Client程序需要从Server端获取信息及其他服务时,应创建一个Socket对象: 

Socket MySocket=new Socket(“ServerComputerName”,600); 

Socket类的构造函数有两个参数,第一个参数是欲连接到的Server计算机的主机地址,第二个参数是该Server机上提供服务的端口号。 

Socket对象建立成功之后,就可以在Client和Server之间建立一个连接,并通过这个连接在两个端点之间传递数据。

利用Socket类的方法getOutputStream()和getInputStream()分别获得向Socket读写数据的输入/输出流,最后将从Server端读取的数据重新返还到Server端。 

当Server和Client端的通信结束时,可以调用Socket类的close()方法关闭Socket,拆除连接。 ServerSocket 一般仅用于设置端口号和监听,真正进行通信的是服务器端的Socket与客户端的Socket,在ServerSocket 进行accept之后,就将主动权转让了。

文章评论

站点信息

  • 建站时间:2018年04月1日
  • 网站程序:织梦CMS5.7
  • 文章统计:100条
  • 统计数据站长统计
  • 我的微信:网站制作,互换友链,扫描二维码,加我好友