首页

源码搜藏网

首页 > 开发教程 > 软件工程 >

Java千百问_01基本概念(012)_Socket是什么

创建时间:2016-06-19 11:17  

点击进入_更多_Java千百问

1、什么是Socket

Socket也称作“套接字”。网络上的两个应用程序通过一个双向的通讯连接实现数据的交换,这个双向链路的一端称为一个Socket,所以Socket都是成对出现的。Socket通常用来实现客户方服务方的连接,一个Socket由一个IP地址和一个端口号唯一确定。

Socket是TCP/IP协议的一个十分流行的解决方案,是支持TCP/IP协议的网络通信的基本操作单元。Socket所支持的协议种类不只TCP/IP一种,只不过在Java环境下,Socket编程主要是指基于TCP/IP协议的网络编程

了解TCP/IP协议看这里:[TCP/IP协议是什么][2]

Socket正如其英文原意那样,像一个插座,网络上某一个主机运行了多个应用,同时提供多种服务。每种服务都打开一个Socket,并绑定到一个端口上,不同的端口对应于不同的服务。这台主机就犹如布满各种插座的房间,每个插座有一个编号,不同的插座提供不同的服务:有的提供220伏交流电、有的提供宽带网络、有的提供有线电视节目。客户软件将插头插到不同编号的插座,就可以得到不同的服务。

2、Socket如何通讯

Socket步骤如下:Server端监听某个端口是否有连接请求,Client端向Server端发出连接请求,如果Server端监听到了Client端的请求,则向Client端发回接受消息。这样一个连接就建立起来了。Server端和Client端都可以通过Send,Write等方法与对方通信

从上面的描述可以看出,Socket之间的连接过程可以分为三个步骤

  1. 服务器监听
    服务器端的Socket,它并不定位具体客户端的Socket,而是处于等待连接的状态,实时监控网络状态

  2. 客户端请求
    由客户端的Socket提出连接请求,要连接的目标是服务器端的Socket。为此,客户端的Socket必须首先描述它要连接的Socket,指出服务器端Socket的地址和端口号,然后就向服务器端Socket提出连接请求。

  3. 连接确认
    当服务器端Socket监听到客户端Socket的连接请求时,它会响应客户端Socket的请求,建立一个新的线程,把服务器端Socket的描述发给客户端。一旦客户端确认了此描述,连接就建立好了。而服务器端套接字继续处于监听状态,继续接收其他客户端套接字的连接请求。

对于一个功能齐全的Socket,其工作过程需要包含以下四个步骤:

  1. 创建Socket
  2. 打开连接到Socket的输入/出流
  3. 对Socket进行读/写操作
  4. 关闭Socket

Socket服务端分为单线程Socket多线程Socket两种。顾名思义,单线程Socket是指同时只能与一个客户端连接;多线程Socket是指能够同时与多个客户端连接。

了解如何编写单线程Socket程序看这里:[如何编写单线程Socket程序][3]
了解如何编写多线程Socket程序看这里:[如何编写多线程Socket程序][4]

0
0
   
上一篇:bzoj4557【JZOI2016】侦查守卫
下一篇:Java千百问_04异常处理(007)_常见的java异常有哪些(非运行时)

相关内容

热门推荐