黑马程序员-网络编程

原创 2012年03月24日 10:06:41

---------------------- android培训java培训、期待与您交流! -------------------------------


网络编程的目的就是指直接或间接地通过网络协议与其他计算机进行通讯。网络编程中有两个主要的问题,一个是如何准确的定位网络上一台或多台主机,另一个就是找到主机后如何可靠高效的进行数据传输。在TCP/IP协议中IP层主要负责网络主机的定位,数据传输的路由,由IP地址可以唯一地确定Internet上的一台主机。而TCP层则提供面向应用的可靠的或非可靠的数据传输机制,这是网络编程的主要对象,一般不需要关心IP层是如何处理数据的

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

TCP是一个基于连接的协议,它能够提供两台计算机之间的可靠的数据流 . HTTPFTPTelnet等应用都需要这种可靠的通信通道。

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

UDP是从一台计算机向另一台计算机发送称为数据报的独立数据包的协议,该协议并不保证数据报是否能正确地到达目的地。它是一个非面向连接的协议。

这两种协议做简单比较 

–使用UDP时,每个数据报中都给出了完整的地址信息,因此无需要建立发送方和接收的连接。 

–对于TCP协议,由于它是一个面向连接的协议,在socket之间进行数据传输之前必然要建立连接,所以在TCP中多了一个连接建立的时间 。

–使用UDP传输数据时是有大小限制的,每个被传输的数据报必须限定在64KB之内。 

TCP没有这方面的限制,一旦连接建立起来,双方的socket就可以按统一的格式传输大量的数据。 

UDP是一个不可靠的协议,发送方所发送的数据报并不一定以相同的次序到达接收方。 

TCP是一个可靠的协议,它确保接收方完全正确地获取发送方所发送的全部数据。

TCP在网络通信上有极强的生命力,例如远程连接(Telnet)和文件传输(FTP)都需要不定长度的数据被可靠地传输。 相比之下UDP操作简单,而且仅需要较少的监护,因此通常用于局域网高可靠性的分散系统中client/server应用程序。

Jdk中的类:

通过java.net包中的类,java程序能够使用TCPUDP协议在互联网上进行通讯 

Java 通过扩展已有的流式输入/输出接口和增加在网络上建立输入/输出对象特性这两个方法支持TCP/IP。 

Java支持TCPUDP协议族。TCP用于网络的可靠的流式输入/输出。UDP支持更简单的、快速的、点对点的数据报模式。

使用ServerSocketSocket实现服务器端和客户端的 Socket通信流程: 

1) 建立Socket连接 

2)  获得输入/输出流 

3)读/写数据 

4) 关闭输入/输出流 

5) 关闭Socket 


------------- android培训java培训、期待与您交流! ----------------------详细请查看:http://edu.csdn.net/heima

黑马程序员——网络编程(Socket)

------Java培训、Android培训、iOS培训、.Net培训、期待与您交流! -------
  • bxy19921025
  • bxy19921025
  • 2015年01月30日 16:56
  • 378

黑马程序员_我的Linux基础整理笔记

Linux Linux文件目录和分区 文件目录: /:根目录 /root:存放root用户的相关文件 /home:存放普通用户的相关文件 /bin:存放普通用户的可执行命令 /sbin:...
  • zhengzhongjie1990
  • zhengzhongjie1990
  • 2014年07月05日 17:08
  • 1515

黑马程序员——网络爬虫

------- android培训、java培训、期待与您交流! ----------
  • yonggandeyangguang
  • yonggandeyangguang
  • 2014年09月24日 12:14
  • 217

黑马程序员——Java基础测试题

------Java培训、Android培训、iOS培训、.Net培训、期待与您交流! ------- 黑马程序员——Java基础测试题 第1题:以下代码哪个是正确的?为什么?   a. byte...
  • liu007004
  • liu007004
  • 2015年01月16日 12:49
  • 1369

黑马程序员-java就业面试题大全(持续更新)

1、一个"java"源文件中是否可以包含多个类()?
  • zj3911507
  • zj3911507
  • 2014年06月20日 16:32
  • 1905

黑马程序员——网络编程详解

------- android培训、java培训、期待与您交流! --------- 网络编程 一,概述 网络编程的目的就是指直接或间接地通过网络协议与其他计算机进行通讯。 网络编程中有两个...
  • Smile_Dark
  • Smile_Dark
  • 2015年07月15日 11:45
  • 319

黑马程序员 九、IO 操作(1)

Java帮帮-IT资源分享网  九、黑马程序员—IO 操作(1) 第九篇 IO 文件操作(1)   1、IO 的概述和 File 方法 IO 流用来处理设备之间的数据传输 ...
  • s1547823103
  • s1547823103
  • 2017年04月26日 12:45
  • 342

黑马程序员学习笔记 Java的三大框架

如果做javaweb开发,spring是一定要学的,现在主流还是ssh,就是strurs+hibernate+spring,其中hibernate是持久层,用来持久化数据库操作的,如果不喜欢可以学点别...
  • Mr_April
  • Mr_April
  • 2015年07月03日 17:12
  • 1534

黑马程序员—黑马的学习环境没有亲身经历的人是很难体会的!!!

文章来源:黑马程序员,黑马论坛     公元2013年1月10号我拖着沉重的行李箱和对未来的憧憬来到了黑马,公元2013年6月7号我怀抱着满满的知识和对老师的不舍离开了黑马。到现在离开黑马也有一个...
  • heima_28
  • heima_28
  • 2014年08月26日 15:16
  • 1411

黑马程序员--Oracle学习_day06

----------  android培训 、java培训、期待与您交流! ---------- 学习目标:1,理解oracle的pl/sql的概念   2,掌握pl/sql编程技术(...
  • xpaibeyond
  • xpaibeyond
  • 2015年01月16日 14:28
  • 202
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:黑马程序员-网络编程
举报原因:
原因补充:

(最多只允许输入30个字)