返回顶部
首页 > 资讯 > 精选 >Socket慨念指的是什么
  • 523
分享到

Socket慨念指的是什么

2023-06-03 04:06:32 523人浏览 安东尼
摘要

Socket慨念指的是什么,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。Java开发网络软件非常方便和强大,Java的这种力量来源于他独有的一套强大的用于网络的 api,这

Socket慨念指的是什么,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。

Java开发网络软件非常方便和强大,Java的这种力量来源于他独有的一套强大的用于网络的 api,这些API是一系列的类和接口,均位于包java.net和javax.net中。在这篇文章中我们将介绍套接字(Socket)慨念,同时以实例说明如何使用Network API操纵套接字,在完成本文后,你就可以编写网络低端通讯软件。

  什么是套接字(Socket)

  Network API是典型的用于基于tcp/IP网络Java程序与其他程序通讯,Network API依靠Socket进行通讯。Socket可以看成在两个程序进行通讯连接中的一个端点,一个程序将一段信息写入Socket中,该Socket将这段信息发送给另外一个Socket中,使这段信息能传送到其他程序中。如图1XML:namespace prefix = o ns = "urn:schemas-microsoft-com:Office:office" />

ASPectratio="t" v:ext="edit">20030107/jt-2003-image001.gif" src="/Develop/ArticleImages/24/24004/CSDN_Dev_Image_2004-2-41116030.gif">


  我们来分析一下图1,Host A上的程序A将一段信息写入Socket中,Socket的内容被Host A的网络管理软件访问,并将这段信息通过Host A的网络接口卡发送到Host B,Host B的网络接口卡接收到这段信息后,传送给Host B的网络管理软件,网络管理软件将这段信息保存在Host B的Socket中,然后程序B才能在Socket中阅读这段信息。

  假设在图1的网络中添加第三个主机Host C,那么Host A怎么知道信息被正确传送到Host B而不是被传送到Host C中了呢?基于TCP/IP网络中的每一个主机均被赋予了一个唯一的IP地址,IP地址是一个32位的无符号整数,由于没有转变成二进制,因此通常以小数点分隔,如:198.163.227.6,正如所见IP地址均由四个部分组成,每个部分的范围都是0-255,以表示8位地址。

  值得注意的是IP地址都是32位地址,这是IP协议版本4(简称ipv4)规定的,目前由于IPv4地址已近耗尽,所以ipv6地址正逐渐代替Ipv4地址,Ipv6地址则是128位无符号整数。

  假设第二个程序被加入图1的网络的Host B中,那么由Host A传来的信息如何能被正确的传给程序B而不是传给新加入的程序呢?这是因为每一个基于TCP/IP网络通讯的程序都被赋予了唯一的端口和端口号,端口是一个信息缓冲区,用于保留Socket中的输入/输出信息,端口号是一个16位无符号整数,范围是0-65535,以区别主机上的每一个程序(端口号就像房屋中的房间号),低于256的短口号保留给标准应用程序,比如pop3的端口号就是110,每一个套接字都组合进了IP地址、端口、端口号,这样形成的整体就可以区别每一个套接字t,下面我们就来谈谈两种套接字:流套接字和自寻址数据套接字。

  流套接字(Stream Socket

  无论何时,在两个网络应用程序之间发送和接收信息时都需要建立一个可靠的连接,流套接字依靠TCP协议来保证信息正确到达目的地,实际上,IP包有可能在网络中丢失或者在传送过程中发生错误,任何一种情况发生,作为接受方的 TCP将联系发送方TCP重新发送这个IP包。这就是所谓的在两个流套接字之间建立可靠的连接。

  流套接字在C/S程序中扮演一个必需的角色,客户机程序(需要访问某些服务的网络应用程序)创建一个扮演服务器程序的主机的IP地址和服务器程序(为客户端应用程序提供服务的网络应用程序)的端口号的流套接字对象。

  客户端流套接字的初始化代码将IP地址和端口号传递给客户端主机的网络管理软件,管理软件将IP地址和端口号通过NIC传递给服务器端主机;服务器端主机读到经过NIC传递来的数据,然后查看服务器程序是否处于监听状态,这种监听依然是通过套接字和端口来进行的;如果服务器程序处于监听状态,那么服务器端网络管理软件就向客户机网络管理软件发出一个积极的响应信号,接收到响应信号后,客户端流套接字初始化代码就给客户程序建立一个端口号,并将这个端口号传递给服务器程序的套接字(服务器程序将使用这个端口号识别传来的信息是否是属于客户程序)同时完成流套接字的初始化。

  如果服务器程序没有处于监听状态,那么服务器端网络管理软件将给客户端传递一个消极信号,收到这个消极信号后,客户程序的流套接字初始化代码将抛出一个异常对象并且不建立通讯连接,也不创建流套接字对象。这种情形就像打电话一样,当有人的时候通讯建立,否则电话将被挂起。

  这部分的工作包括了相关联的三个类:InetAddress, Socket, 和 ServerSocket。 .netAddress对象描绘了32位或128位IP地址,Socket对象代表了客户程序流套接字,ServerSocket代表了服务程序流套接字,所有这三个类均位于包java.net中

关于Socket慨念指的是什么问题的解答就分享到这里了,希望以上内容可以对大家有一定的帮助,如果你还有很多疑惑没有解开,可以关注编程网精选频道了解更多相关知识。

--结束END--

本文标题: Socket慨念指的是什么

本文链接: https://lsjlt.com/news/232668.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • Socket慨念指的是什么
    Socket慨念指的是什么,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。Java开发网络软件非常方便和强大,Java的这种力量来源于他独有的一套强大的用于网络的 api,这...
    99+
    2023-06-03
  • mysql socket指的是什么
    这篇“mysql socket指的是什么”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“my...
    99+
    2023-04-07
    mysql socket
  • C#概念指的是什么
    这篇文章给大家介绍C#概念指的是什么,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。C#概念谈到C#入门我们首先来看看C#,它是是一种简洁、类型安全的面向对象的语言,开发人员可以使用它来构建在 .NET Framewor...
    99+
    2023-06-17
  • java空指针的概念是什么
    在Java中,空指针是指一个变量被赋值为null,然后尝试访问该变量的实例方法或实例字段时出现的错误。当一个变量为空时,它不指向任何...
    99+
    2024-02-29
    java
  • c语言指针的概念是什么
    C语言中的指针是一个变量,用于存储另一个变量的地址。简单来说,指针就是指向内存中某个位置的变量。指针的概念可以帮助我们实现一些高级的...
    99+
    2023-09-16
    c语言
  • unix的socket是什么
    unix的socket是什么,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。起因:大平在进行unix运维的时候,总是发现后缀是sock的文件,因此想,这是啥文件呢...
    99+
    2023-06-06
  • c语言中指针的概念是什么
    在C语言中,指针是一个变量,其值为内存地址。它可以指向内存中的某个位置,存储了该位置的值或者其他变量的地址。通过指针,可以直接访问和...
    99+
    2024-02-29
    c语言
  • TCP socket和web socket的区别是什么
    TCP socket和web socket的区别是什么,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。首先我们来阅读这段有166个赞的回答:When you send byt...
    99+
    2023-06-04
  • python socket是什么
    这篇文章主要讲解了“python socket是什么”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“python socket是什么”吧!socket起源于Unix,而Unix/Linux基本...
    99+
    2023-06-27
  • C#的Raw Socket是什么
    本篇内容主要讲解“C#的Raw Socket是什么”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“C#的Raw Socket是什么”吧!谈起C# Raw Socket编程,大家也许会想起QQ和IE...
    99+
    2023-06-17
  • 什么是socket编程
    socket编程是传输层供给应用层的编程接口,是应用层与传输层之间的桥梁,使用Socket编程可以开发客户机和服务器应用程序,可以在本地网络上进行通信,也可通过Internet在全球范围内通信。一、socket编程简介所谓socket通常也...
    99+
    2023-07-10
  • Nginx中unix socket和tcp socket的区别是什么
    这篇文章主要介绍“Nginx中unix socket和tcp socket的区别是什么”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“Nginx中unix socke...
    99+
    2022-12-07
    nginx unix socket tcp socket
  • MVCC的概念是什么
    本篇内容主要讲解“MVCC的概念是什么”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“MVCC的概念是什么”吧!MVCC作用MVCC使得大部分支持行锁的事务引擎,...
    99+
    2024-04-02
  • mysql.sock的概念是什么
    这篇文章主要讲解了“mysql.sock的概念是什么”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“mysql.sock的概念是什么”吧! ...
    99+
    2024-04-02
  • HTML的概念是什么
    今天小编给大家分享一下HTML的概念是什么的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。 ...
    99+
    2024-04-02
  • jQuery.noConflict()的概念是什么
    这篇文章主要介绍“jQuery.noConflict()的概念是什么”,在日常操作中,相信很多人在jQuery.noConflict()的概念是什么问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方...
    99+
    2024-04-02
  • url的概念是什么
    这篇文章主要介绍了url的概念是什么的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇url的概念是什么文章都会有所收获,下面我们一起来看看吧。一:url是什么 url是统一资源...
    99+
    2024-04-02
  • nodelist的概念是什么
    这篇文章主要介绍“nodelist的概念是什么”,在日常操作中,相信很多人在nodelist的概念是什么问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”nodelist的概念是...
    99+
    2024-04-02
  • jquery的理念是什么
    本篇内容主要讲解“jquery的理念是什么”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“jquery的理念是什么”吧! jquery...
    99+
    2024-04-02
  • Flex的概念是什么
    这篇文章给大家分享的是有关Flex的概念是什么的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。Flex通常是指AdobeFlex,它是涵盖了支持RIA(RichInternetApplications)的开发和部署...
    99+
    2023-06-17
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作