首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

JAVA编程学习笔记,网络编程基础TCP与UDP

Java是一种可以撰写跨平台应用软件的面向对象的程序设计语言。Java 技术具有卓越的通用性、高效性、平台移植性和安全性,广泛应用于PC、数据中心、游戏控制台、科学超级计算机、移动电话和互联网,同时拥有全球最大的开发者专业社群。

给你学习路线:html-css-js-jq-javase-数据库-jsp-servlet-Struts2-hibernate-mybatis-spring4-springmvc-ssh-ssm

1:网络编程(理解)

(1)网络编程:用Java语言实现计算机间数据的信息传递和资源共享

(2)计算机网络:是指将地理位置不同的具有独立功能的多台计算机及其外部设备,通过通信线路连接起来,在网络操作系统,网络管理软件及网络通信协议的管理和协调下,实现资源共享和信息传递的计算机系统。

(3)网络编程模型

小编推荐一个学Java的学习裙【 六五零,五五四,六零七 】,无论你是大牛还是小白,是想转行还是想入行都可以来了解一起进步一起学习!裙内有开发工具,很多干货和技术资料分享!

网络参考模型

(4)网络编程的三要素

A:IP地址:网络中设备的标识,不易记忆,可用主机名

IP地址组成

IP地址分类

常见的ip操作

java提供了一个类InetAddress 供我们使用:

获取任意主机:getByName()

主机名:getHostName()

主机Ip地址:getHostAddress()

B:端口: 正在运行的程序的标识。(物理端口 :网卡口,这里主要讲的是逻辑端口)

有效端口:0~65535,其中0~1024系统使用或保留端口。

:WINDOWSsystem32driversetcservices文件,了解常用的端口号分配。

C:协议

常用的两个协议

UDP与TCP的区别:

UDP: 数据打包, 有限制, 不连接, 效率高, 不可靠 举例:发短信,邮件

TCP: 建立数据通道, 无限制, 效率低, 可靠 举例:电话,视频

(3)Socket机制

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

Socket原理机制:

A:通信的两端都有Socket。

B:网络通信其实就是Socket间的通信。

C;数据在两个Socket间通过IO传输。

socket机制图解

(4)UDP协议发送和接收数据

发送:

创建UDP发送端的Socket对象

创建数据并把数据打包

发送数据

释放资源

参考代码

接收:

创建UDP接收端的Socket对象

创建数据包用于接收数据

接收数据

解析数据包

释放资源

小编推荐一个学Java的学习裙【 六五零,五五四,六零七 】,无论你是大牛还是小白,是想转行还是想入行都可以来了解一起进步一起学习!裙内有开发工具,很多干货和技术资料分享!

参考代码

(5)TCP协议发送和接收数据

发送:

创建TCP客户端的Socket对象

获取输出流,写数据

释放资源

才考代码

接收:

创建TCP服务器端的Socket对象

监听客户端连接

获取输入流,读取数据

释放资源

参考代码

TCP中出现的问题:

(6)案例:

A:UDP

a:最基本的UDP协议发送和接收数据

b:把发送数据改进为键盘录入

键盘录入发送消息

c:一个简易聊天小程序并用多线程改进

小编推荐一个学Java的学习裙【 六五零,五五四,六零七 】,无论你是大牛还是小白,是想转行还是想入行都可以来了解一起进步一起学习!裙内有开发工具,很多干货和技术资料分享!

简单的聊天测试

PS:多线程未展示,即多个用户向同一个客户端发送消息,这里面的可能存在的问题也有很多,这先不总结。

B:TCP

a:最基本的TCP协议发送和接收数据

b:服务器给出反馈

c:客户端键盘录入服务器控制台输出

d:客户端键盘录入服务器写到文本文件

e:客户端读取文本文件服务器控制台输出

f:客户端读取文本文件服务器写到文本文件

g:上传图片

h:多线程改进上传文件

ps:TCP这里将用到数据流操作,

  • 发表于:
  • 原文链接http://kuaibao.qq.com/s/20180402A1WOES00?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券