`
宁远天意
  • 浏览: 5423 次
  • 性别: Icon_minigender_1
  • 来自: 北京
最近访客 更多访客>>
社区版块
存档分类
最新评论

黑马程序员_网络编程

阅读更多
----------- android培训java培训、java学习型技术博客、期待与您交流! ---------

网络编程:
就是实现网络互联的不同计算机上运行的应用程序间的数据通信。
用java实现多台计算机之间的通信。
三大要素:
IP地址:网络中每台计算机的唯一标示。
为了实现网络中多台计算机之间的数据传输,就需要给每台电脑指定一个标识号指定接收数据的计算和
发送数据的计算机。而在TCPIP协议中,这个标识号就是IP地址。
IP地址的组成:
网络号码 + 主机地址
IP地址的分类:
城域网,广域网,校园网,局域网
怎么查看IP地址?
1、通过控制中心。
2、ipconfig all
怎么查看网络通信状态?
ping  IP地址。
ping 127.0.0.1(本地回环地址)
ping 220.181.111.188

端口号:用来标示进程的逻辑地址。
端口的分类:
物理端口,逻辑端口。
逻辑端口:
1、每个网络程序都至少会有一个逻辑端口。
2、用于标示进程的逻辑地址,不同进程的标示不一样。
3、有效端口:0-65535 ,其中0-1024直接的端口已经被系统占用了或用过保留端口。
也就说:我们在给定端口号的时候,尽量不要使用0-1024之间的端口号。

通过360可以查看端口号

协议:定义通信的规则。
UDP:
把数据进行打包。
数据有限制的(64K)。
面向无连接。
不可靠。
效率高。
TCP:
建立通信通道。
数据无限制。
面向连接(三次握手)
可靠。
效率低。
Socket:
为网络编程提供的一种机制,里边封装了:端口和IP。
1、通信两端都有Socket。
2、网络通信其实就是Socket间的通信。数据在两个Socket间通过IO流传输。
网络编程也叫套接字编程,Socket编程。

InetAddress类:
IP地址的包装类。
这个类没有提供构造方法,哪我们怎么创建对象呢?
通过: public static InetAddress getByName(String host); 
返回的是一个IP地址(对象形式的)
注意:host可以是主机名,也可以是IP地址的文本形式  192.168.27.66
该类下的两个方法:
public String getHostName();  获取主机名。
public String getHostAddress();  获取IP地址的文本形式。

public static InetAddress getLocalHost(); 

用UDP协议发送数据:
1、创建发送端Socket对象。
DatagramSocket类:
注意:这里我们用的是该类的无参构造。

2、创建数据,并将数据打包。
DatagramPacket:
数据报包类。
注意:这里我们用的是 public DatagramPacket(byte[] bys,int length,InetAddress address,int port);
四个参数分别是:要发送的数据的字节数组形式,发送的数据大小,要发给谁(IP),端口
3、发送数据包。
public void send(DatagramPacket p);  这个方法是DatagramSocket类下的
4、释放在资源。
用UDP协议接收数据:
1、创建接收端Socket对象。
调用的是public DatagramSocket(int port)这个构造。
2、创建一个容器,接收传过来的数据包。
public DatagramPacket(byte[] bys ,int length); 调的是这个构造
3、接收传过来的数据。
public void receive(DatagramPacket p);  这个方法是DatagramSocket类下的。
4、解析数据包。
public InetAddress getAddress();  获取传数据过来的IP主机。
public byte[] getData();   获取传过来的数据(字节数组形式)。
public int length(); 获取接收到的实际长度。
public String(byte[] bys,int index,int length);
5、释放资源。

广播地址:
IP地址的最后一个号段,改为255.
一般我们分配IP的时候,255是不会被分配。

用多线程改进聊天室:
其实就是把main函数中的代码,封装到run()方法中。
应用程序:
IO流,多线程,网络编程。

TCP协议发送数据:
1、创建一个客户端的Socket对象。
public Socket(String ip,int port); 
三次握手:
第一次:客户端向服务端发出请求,我要跟你连接。
第二次:服务端给客户端一个反馈。
第三次:成功建立通道。
2、建立连接。
3、发送数据。(获取输出流,来往服务端发送数据)
public OutputStrem getOutputStream();  该方法是Socket类下的,用来获取输出流。
4、释放资源。
TCP协议接收数据:
1、创建一个服务端Socket对象。
public ServerSocket(int port);
2、监听连接。
public Socket accept();
3、获取输入流,来读取数据,并显示。
public InputStream getInputStream(); 注意:该方法是Socket类中的方法。
4、释放资源。


需求:数据来源于键盘录入,通过服务器转成大写,然后反馈给客户端显示。
一个案例:键盘录入数据写入文本文件
注意:
当我们想结束键盘录入的时候,怎么办?
1、自定义一个结束标示。
2、调用 public void shutdownOutPut();


----------- android培训java培训、java学习型技术博客、期待与您交流! ---------
分享到:
评论

相关推荐

    黑马_Linux网络编程-网络基础-socket编程-高并发服务器

    黑马程序员linux服务器开发网络编程配套文档,很好的参考资料

    黑马程序员-Java语言进阶-源码、教程笔记.zip

    day01_Object类、常用API day02_Collection、泛型 day03_List、Set、数据结构、Collections day04_Map,斗地主案例 ...day11_网络编程 day12_函数式接口 day13_Stream流、方法引用 Java基础小节练习题答案

    传智播客&黑马程序员PYTHON教程课件汇总

    含书签,可检索 01_Python基础 02_linux基础 03_python高级 ...06_网络编程 07_正则表达式课件 08_数据结构和算法 09_MySQL 10_mongo 11_redis 12_前端 13_django 14_爬虫 15_tornado 16_shell 17_微信公众号

    Python课后题答案.docx

    黑马程序员《Python快速编程入门》习题答案与分析 希望能帮助到同学们

    Linux网络编程第二版.ppt

    Linux网络编程第二版.ppt,详细介绍了linux网络编程的相关技术,是初学者相当好的入门教材

    day11_网络编程2

    每日作业卷JavaSE第11天网络编程传智播客.黑马程序员基础题练习一:ip地址和端口号概念描述:请写出IP地址的概念:请写出端口号的概念:练习二:UDP协议判

    解析Python网络爬虫_复习大纲.docx

    解析Python网络爬虫_复习大纲.docx

    黑马程序员入学Java知识——精华总结

    含面向对象,异常处理和常用类,线程技术,集合框架,IO操作,网络编程,文件操作,反射机制,

    黑马程序员入学Java知识——精华总结.doc

    Java是SUN(Stanford University Network,斯坦福大学网络公司)1995年推出的一门高级语言。是一种面向Internet的编程语言。 随着Java技术在web方面的不断成熟,已经成为Web应用程序的首选开发语言。是简单易学,完全...

    黑马程序员安卓Android52期培训课

    2015/1/20 星期二 Android应用开发-网络编程 2015/1/21 星期三 Android应用开发-网络编程 2015/1/22 星期四 2015/1/23 星期五 Android应用开发-页面跳转和数据传递 2015/1/24 星期六 Android应用开发-广播和服务 ...

    黑马程序员-Python-Django实现从0开发一个博客系统.zip

    Python使用技巧,实战应用...详细介绍了一些Python框架的各种功能和模块,以及如何使用Python进行GUI开发、网络编程和跨平台应用开发等。 适用于初学者和有经验的开发者,能够帮助你快速上手JPython并掌握其高级特性。

    ANDROID移动开发基础案例教程

    ANDROID移动开发基础案例教程,黑马程序员。人民邮电出版社。本书从初学者的角度出发,采用案例驱动式教学方法,对Android基础知识进行讲解。在案例设计上力求贴合实际需求,真正做到把书本上的知识应用到实际开发中...

    学习黑马c c++网络攻防培训.rar

    去黑马程序员培训就是要有心理准备吧,你想吃、住的好还是需要钱包鼓。 我当时学的物流项目和我工作的内容很多共通点。比如SpringBoot整合ES实现订单数据的查询和检索,还有通过echarts可视化各项数据,还有用地图...

    JAVA netty完整示例代码

    JAVA netty完整示例代码。里面包括整个项目和所需的JAR包。示例以:TCP/IP自定义报文协议...备注:netty是JAVA高性能TCP/IP网络编程,有很多数据存储工具:ELASTICSEARCH和HBASE都是用基于NETTY编程,值得研究学习。

    Linux从入门到精通

    全书内容包括Linux概述、Linux安装、Linux基本配置、桌面环境基本操作、Shell基本命令、...编程、服务器基础知识、Apache服务器、vsftpd服务器、Samba服务器、NFS服务器、任务计划、防火墙和网络安全、病毒和木马防范...

    mfc教程(word版)

    1.1 MFC是一个编程框架 1 1.1.1 封装 1 1.1.2 继承 2 1.1.3 虚拟函数和动态约束 2 1.1.4 MFC的宏观框架体系 2 1.2 MDI应用程序的构成 3 1.2.1 构成应用程序的对象 3 1.2.2 构成应用程序的对象之间的关系 5 1.2.3 ...

    高级java笔试题-CS_Learning_List:计算机学习书籍和课程,书籍清单和PDF,视频课程资源

    《Java网络编程》 《Spring实战》 《深入理解Java虚拟机》 《Java核心技术 卷Ⅰ / Ⅱ》 :television:学习课程 【廖雪峰】Java教程 【龙果学院】Java并发编程原理与实战 【龙果学院】深入理解Java虚拟机(jvm性能调优...

    Android移动开发基础案例教程(第2版)_PPT.zip

    Android移动开发基础案例教程(第2版)_PPT.zip

    百度地图毕业设计源码-Java-Notes:2020Java快速成长学习路线,从0到1的过程,打破你知识的盲区,渐渐爱上Java,我想对还是小

    @学习路线根据黑马程序员学习路线改编 Part1: Java基础&Web基础 Java基础 面向对象思想 集合框架 IO流 多线程与并发 异常处理 网络编程 数据库 MySQL Oracle JDBC C3P0 Druid 前端技术 HTML CSS JavaScript jQuery ...

    Java基础最全笔记文档

    Java基础笔记分为 Java基础篇 和 Java加强篇 Java基础篇包括: 1. Java环境搭建、Java快速入门、IDEA开发工具 ...12. 网络编程 13. 单元测试、反射、注解、动态代理 14. XML、解析、工厂模式和装饰模式

Global site tag (gtag.js) - Google Analytics