问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

java Socket通信原理

发布网友 发布时间:2022-04-20 07:06

我来回答

4个回答

懂视网 时间:2022-06-07 16:53

socket通信原理是什么?让我们一起来了解下。

Socket指套接字,就是对网络中不同主机上的应用进程之间进行双向通信的端点的抽象。一个套接字就是网络上进程通信的一端,提供了应用层进程利用网络协议交换数据的机制。从所处的地位来讲,套接字上联应用进程,下联网络协议栈,是应用程序通过网络协议进行通信的接口,是应用程序与网络协议栈进行交互的接口。

Socket保证了不同计算机之间的通信,也就是网络通信。对于网站,通信模型是服务器与客户端之间的通信。两端都建立了一个Socket对象,然后通过Socket对象对数据进行传输。通常服务器处于一个无限循环,等待客户端的连接。

套接字是通信的基石,是支持TCP/IP协议的路通信的基本操作单元。可以将套接字看作不同主机间的进程进行双间通信的端点,它构成了单个主机内及整个网络间的编程界面。套接字存在于通信域中,通信域是为了处理一般的线程通过套接字通信而引进的一种抽象概念。套接字通常和同一个域中的套接字交换数据,各种进程使用这个相同的域互相之间用Internet协议簇来进行通信,套接字还有以下类型:

1、流套接字

流套接字用于提供面向连接、可靠的数据传输服务。该服务将保证数据能够实现无差错、无重复送,并按顺序接收。流套接字之所以能够实现可靠的数据服务,原因在于其使用了传输控制协议,即TCP协议。

2、数据报套接字

数据报套接字提供一种无连接的服务。该服务并不能保证数据传输的可靠性,数据有可能在传输过程中丢失或出现数据重复,且无法保证顺序地接收到数据。数据报套接字使用UDP协议进行数据的传输。由于数据报套接字不能保证数据传输的可靠性,对于有可能出现的数据丢失情况,需要在程序中做相应的处理 。

3、原始套接字

原始套接字与标准套接字(标准套接字指的是前面介绍的流套接字和数据报套接字)的区别在于:原始套接字可以读写内核没有处理的IP数据包,而流套接字只能读取TCP协议的数据,数据报套接字只能读取UDP协议的数据。因此,如果要访问其他协议发送的数据必须使用原始套接。

今天的分享就是这些,希望能帮助大家。

热心网友 时间:2022-06-07 14:01

具体如下:

首先socket 通信是基于TCP/IP 网络层上的一种传送方式,我们通常把TCP和UDP称为传输层。其中UDP是一种面向无连接的传输层协议。UDP不关心对端是否真正收到了传送过去的数据。

如果需要检查对端是否收到分组数据包,或者对端是否连接到网络,则需要在应用程序中实现。UDP常用在分组数据较少或多播、广播通信以及视频通信等多媒体领域。

在这里我们不进行详细讨论,这里主要讲解的是基于TCP/IP协议下的socket通信。

socket是基于应用服务与TCP/IP通信之间的一个抽象,他将TCP/IP协议里面复杂的通信逻辑进行分装。

服务端初始化ServerSocket,然后对指定的端口进行绑定,接着对端口及进行监听,通过调用accept方法阻塞。

此时,如果客户端有一个socket连接到服务端,那么服务端通过监听和accept方法可以与客户端进行连接。

Java是一门面向对象编程语言,不仅吸收了C++语言的各种优点,还摒弃了C++里难以理解的多继承、指针等概念,因此Java语言具有功能强大和简单易用两个特征。

Java语言作为静态面向对象编程语言的代表,极好地实现了面向对象理论,允许程序员以优雅的思维方式进行复杂的编程。

Java具有简单性、面向对象、分布式、健壮性、安全性、平*立与可移植性、多线程、动态性等特点。Java可以编写桌面应用程序、Web应用程序、分布式系统和嵌入式系统应用程序等。

热心网友 时间:2022-06-07 15:19

我发个图给你,没看懂再留言吧

热心网友 时间:2022-06-07 16:53

通过tcp/IP或者udp进行网络通讯。
如果还要继续深究的话,建议你看看网络协议方面的书籍
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
猫咪丢了之后心里很难过,然后男友担心我就重新去领养了一只小花猫,可是... 有关名侦探柯南黑暗组织!! qq上删除的好友怎么找回来,六个月以上的。只要能找到QQ号就行,我可以... 六个月内删掉的qq好友能找回吗? 急!!因欠费而停机的手机能收到短信吗 手机关机之后停机信息是否可以收到 手机欠费后冲了钱但还是欠费会收到短信吗 手机停机了,包月的流量没用完,能收到微信吗? 德州到潍坊用不用隔离? 南都周刊2011年有一篇社论≪躺在时间的河流上怀念他们≫写得很棒... 祝福 诗词 对新一年美好祝愿诗句 古诗词里最美好的祝愿 求新年祝福词语 给同事发什么春节祝福,要轻松一些的(60字以内)? 幼儿园开学祝福语古诗 关于“错”的诗句 代表美好的诗词 含有错的诗句有哪些? 表达美好祝愿的诗句有哪些 关于新年的宋词 元旦快乐的诗句 关于迎新年的诗句古诗 探春令表达了作者怎样的感情 新春的古诗 《探春令》这首词主要表达了什么感情? 华为mate9安装软件被阻止怎么解决 微信小程序怎么设计呀 有没有简单的方法 显示微信小程序怎么办 最新版微信没有小程序怎么解 我下载了微信小程序我打开了什么也没有啊 java中如何创建socket连接的过程 java简答题 如何创建socket连接的过程 java建立socket连接 java编程中,Socket通信是怎么实现的? Java Socket连接问题 java中如何创建socket连接的过程? java中Socket通信 JAVA socket通信 Java Socket 长连接怎么实现 java关于socket多连接 java中怎么判断socket是否连接成功 java中的socket是什么意思? java的socket通信 Java Socket 连接不上服务器 java socket如何实现客户端与客户端的交互? java socket连接问题 如何让socket连接跨过路由器 java中用socket实现客户端与服务端双向连接问题 java关于Socket连接错误问题 java中使用Socket连接,关闭是出异常如何处理? 减肥酵制作方法,谁会呢?求方法~~~~~~