`
youyu4
  • 浏览: 440337 次
社区版块
存档分类
最新评论

java socket编程(理论)

 
阅读更多

java socket编程(理论)

 

网络编成的两个主要问题

 

  • 如何准确的定位网络上一台或多台主机
  • 找到主机后如何可靠高效的进行数据传输

      在TCP/IP协议中IP层主要负责网络主机的定位,数据传输的路由,由IP地址可以唯一地确定Internet上的一台主机。而TCP层则提供面向应用的可靠(tcp)的或非可靠(UDP)的数据传输机制,这是网络编程的主要对象,一般不需要关心IP层是如何处理数据的。

 

 

实现方式

  • 通过HTTP协议传输数据,因为HTTP属于应用层,所以我们可以通过该协议,进行一次短连接,然后传输数据。
  • 通过Socket进行数据传输,Socket是一个连接TCP协议的接口,通过Socket建立的连接是长连接,同样可以传输数据。

 

 

 

五层模型

 

应用层:HTTP、FTP、SMTP、Telnet等

传输层:TCP/IP

网络层:

数据链路层:

物理层:网线、双绞线、网卡等



 

其中还有七层模型和五层模型,其中的区别参考:

http://blog.chinaunix.net/uid-22166872-id-3716751.html

 

 

 

 

TCP和UDP都属于传输层协议,两种传输协议的比较

 

       TCPTranfer Control Protocol的 简称,是一种面向连接的保证可靠传输的协议。通过TCP协议传输,得到的是一个顺序的无差错的数据流。发送方和接收方的成对的两个socket之间必须建 立连接,以便在TCP协议的基础上进行通信,当一个socket(通常都是server socket)等待建立连接时,另一个socket可以要求进行连接,一旦这两个socket连接起来,它们就可以进行双向数据传输,双方都可以进行发送 或接收操作。

 

        UDPUser Datagram Protocol的简称,是一种无连接的协议,每个数据报都是一个独立的信息,包括完整的源地址或目的地址,它在网络上以任何可能的路径传往目的地,因此能否到达目的地,到达目的地的时间以及内容的正确性都是不能被保证的。

 

比较:

 

UDP:

 

  1. 每个数据报中都给出了完整的地址信息,因此无需要建立发送方和接收方的连接。
  2. UDP传输数据时是大小限制的,每个被传输的数据报必须限定在64KB之内
  3. UDP是一个不可靠的协议,发送方所发送的数据报并不一定以相同的次序到达接收方

TCP:

 

  1. 面向连接的协议,在socket之间进行数据传输之前必然要建立连接,所以在TCP中需要连接时间。
  2. TCP传输数据大小限制,一旦连接建立起来,双方的socket就可以按统一的格式传输大的数据。
  3. TCP是一个可靠的协议,它确保接收方完全正确地获取发送方所发送的全部数据。

 

应用

 

       1、TCP在网络通信上有极强的生命力,例如远程连接(Telnet)和文件传输(FTP)都需要不定长度的数据被可靠地传输。但是可靠的传输是要付出代价的,对数据内容正确性的检验必然占用计算机的处理时间和网络的带宽,因此TCP传输的效率不如UDP

 

       2、UDP操作简单,而且仅需要较少的监护,因此通常用于局域网高可靠性的分散系统中client/server应用程序。例如视频会议系统,并不要求音频视频数据绝对的正确,只要保证连贯性就可以了,这种情况下显然使用UDP会更合理一些。

 

 

 

Socket工作原理

 

Socket套接字:

 

        网络上具有唯一标识的IP地址和端口组合在一起才能构成唯一能识别的标识符套接字。

 

Socket原理机制:

 

  • 通信的两端都有Socket
  • 网络通信其实就是Socket间的通信
  • 数据在两个Socket间通过IO传输

 

 

 

Socket通信

 

      Socket是应用层与TCP/IP协议族通信的中间软件抽象层,它是一组接口。在设计模式中,Socket其实就是一个门面模式,它把复杂的TCP/IP协议族隐藏在Socket接口后面,对用户来说,一组简单的接口就是全部,让Socket去组织数据,以符合指定的协议。

 



 

 

 

 

Socket通信模型



 



 

 

 

 

三次握手

 

无论是HTTP还是Socket,连接都会有一个三次握手,断开连接时都会有一个四次握手,详细参考:

http://www.2cto.com/net/201310/251896.html

 

 

 

基本概念

 

短连接

 

连接->传输数据->关闭连接 

 

短连接是指建立连接,发送数据,接收数据后,马上断开连接。 

 

比如:

 

HTTP1.0默认是短连接,无状态的,浏览器和服务器每进行一次HTTP操作,就建立一次连接,但任务结束就中断连接。

 

Http1.1默认是长连接

无状态:协议对于事务处理没有记忆能力;

 

 

长连接

 

连接->传输数据->保持连接 -> 传输数据-> 。。。 ->关闭连接。 

 

建立SOCKET连接后,不管是否使用,一直保持连接。

 

 

 

http://www.cnblogs.com/itfly8/p/5844803.html

http://blog.csdn.net/zzp_403184692/article/details/8065016

  • 大小: 136 KB
  • 大小: 107 KB
  • 大小: 108.9 KB
  • 大小: 43.9 KB
分享到:
评论

相关推荐

    JAVA Socket 经典教程

    本教程将深入探讨Java Socket编程的核心概念,以及如何利用它进行网络通信。 1. **Java Socket基础** - **Socket的概念**:Socket是网络通信中的一个端点,可以理解为两台机器间通信的桥梁。在Java中,Socket类...

    Java TCP IP Socket编程(原书第2版)

    通过动手实践,读者可以将理论知识转化为实际技能,更好地理解和掌握Java中的Socket编程。 综上所述,《Java TCP/IP Socket编程》(原书第2版)是一本全面且深入的指南,无论你是初学者还是有一定经验的开发者,都...

    Java TCP/IP Socket编程

    Java TCP/IP Socket编程是Java网络编程中的重要组成部分,它提供了在网络间进行数据传输的基础机制。TCP(Transmission Control Protocol)和IP(Internet Protocol)是互联网上最基础的通信协议,而Socket则是TCP/...

    java TCP/IP socket 编程(原书第2版)pdf+源码

    Java TCP/IP Socket编程是Java网络通信的核心技术,广泛应用于服务器端和客户端之间的数据传输。这本书的第二版深入探讨了如何使用Java实现TCP/IP协议栈的socket接口,为开发者提供了全面的理论知识和实践指导。 ...

    Java TCP_IP Socket编程源代码书籍以及附带源码

    Java TCP/IP Socket编程是网络通信领域中的核心技术,广泛应用于服务器端和客户端之间的数据传输。本资源包含一本关于Java TCP/IP Socket编程的书籍及其配套源代码,对于深入理解Socket编程至关重要。 书籍《Java ...

    Java网络编程-JavaSocket编程总结

    Java网络编程是构建分布式应用程序的关键技术,而Java Socket编程则是其核心部分,允许两台计算机通过网络进行双向通信。在Java中,Socket是基于TCP/IP协议的,提供了可靠的、面向连接的数据传输服务。 首先,理解...

    java期末复习代码 5个 记事本 异常 文件复制 socket编程 数据库

    这五个主题分别是:记事本程序、异常处理、文件复制、Socket编程以及数据库操作。 首先,我们来看"记事本"项目。这是一个基础的文本编辑器实现,通常会涉及到Java Swing或JavaFX图形用户界面(GUI)库的使用。...

    Java Socket 编程

    Java Socket编程是Java网络编程中的重要组成部分,它允许两台计算机通过网络进行通信。Socket在计算机网络中扮演着客户端和服务器的角色,使得应用程序能够发送和接收数据。本篇内容将深入探讨Java Socket编程的基础...

    java socket 经典教程

    Java Socket编程是网络编程的基础,它是Java平台中用于实现客户端-服务器通信的核心API。本教程将深入探讨Java Socket编程的概念、用法以及实际应用中的关键点。 Java Socket提供了低级别的网络通信接口,允许应用...

    java socket编程 详细的介绍,实例的教学,网站形式,不过特实用

    Java Socket编程是Java网络编程的重要组成部分,它提供了在两台机器间进行低级通信的能力,使得应用程序能够实现客户端-服务器架构。...记住,实践是最好的老师,理论结合实际案例,你的Socket编程技能将不断提升。

    Java Socket 实现SMTP邮件发送,支持SSL/TSL

    Java Socket编程是Java网络编程的基础,它提供了网络通信的能力,使得程序可以与其他计算机上的服务进行交互。在本案例中,我们将关注如何使用Java Socket来实现SMTP(Simple Mail Transfer Protocol)邮件发送,并...

    java socket编程

    Java Socket编程是Java网络编程的重要组成部分,它提供了进程间通信的能力,使得运行在不同设备上的应用程序可以通过网络进行数据交换。本教程将深入讲解Java Socket编程的基础概念、原理以及实际应用。 1. **...

    java Socket编程

    Java Socket编程是Java中用于实现网络通信的一种机制,它基于TCP/IP协议族,允许应用程序通过Socket接口进行数据传输。在Java中,Socket编程涉及到多个重要概念和技术,包括网络模型、URL通信、TCP和UDP的Socket编程...

    《NIO与Socket编程技术指南》_高洪岩

    8. 实战案例:提供实际的NIO和Socket编程示例,帮助读者将理论知识应用于实践。 通过阅读《NIO与Socket编程技术指南》,读者不仅可以理解NIO和Socket的基本原理,还能学习到如何在实际项目中有效地利用这些技术,...

    JAVA SOCKET 编码实例

    在Java编程领域,Socket通信是实现网络间应用进程间通信的一种技术。...通过这样的实践,你将对Java Socket编程有更深入的理解,也能熟练运用CINDY包进行开发。记住,理论与实践相结合是掌握技术的最好方式。

    Java+TCP/IP+Socket编程++原书第2版

    《Java+TCP/IP+Socket编程++原书第2版》是一部深入探讨Java网络编程的权威著作,主要聚焦于TCP/IP协议栈与Socket编程技术。在Java编程领域,掌握网络通信能力是开发分布式系统、服务器端应用以及实时数据传输等项目...

    java网络编程 socket

    本文将深入探讨Java中的Socket编程,包括基本概念、工作原理以及实际应用。 一、Socket基础 Socket,中文常称为“套接字”,是网络通信中的接口,它允许两个程序通过网络交换数据。在Java中,Socket类和...

    Java网络编程期末考试复习题库+答案

    在Java中,网络编程主要依赖于Java的Socket编程、ServerSocket、URL类以及NIO(非阻塞I/O)等核心API。这份"Java网络编程期末考试复习题库+答案"为学生提供了全面的复习资源,涵盖了Java网络编程的主要知识点。 1. ...

    java socket通讯程序源码

    Java Socket通信程序源码是Java网络编程中一个重要的学习领域,它主要用于实现两台计算机之间的数据传输。在Java中,Socket是基于TCP/IP协议的一种低级通信机制,它提供了进程间网络通信的能力。本篇文章将深入探讨...

    java网络编程第四版pdf

    《Java网络编程(第四版)》是一本深入探讨Java在互联网环境下的编程技术的经典书籍。...通过阅读和实践书中的例子,读者不仅可以掌握理论知识,还能积累实际开发经验,从而在实际项目中更好地应用Java进行网络编程。

Global site tag (gtag.js) - Google Analytics