20天jvava(19)

corejava day14 - 网络编程
2011/8/10
=======================================
1.网络的基础知识:
1) IP地址:主机在网络中的唯一标识,是一个逻辑地址。
IP地址的长度为32位,分为4段,每段8位,用十进制数字表示,每段数字范围为0~255,段与段之间用句点隔开。
例如192.168.0.100 127,0,0,1(表示本机地址)
IP地址由两部分组成,一部分为网络地址,另一部分为主机地址。常用IP地址可分为A、B、C三类。
A类IP地址 - 第1段为网络地址,其余3段为主机地址,掩码为255.0.0.0。
B类IP地址 - 前2段为网络地址,其余2段为主机地址,掩码为255.255.0.0。适用于中等规模的网络,每个网络所能容纳的计算机数为6万多台。
C类IP地址 - 前3段为网络地址,剩余1段为主机地址,掩码为255.255.255.0。适用于小规模的局域网络,每个网络最多容纳254台计算机。
2) 端口:用于标识计算机中的特定进程。端口不是物理实体,是一个软件抽象的概念。如果把IP地址看作是一个电话号码的话,端口就相当于分机号。
IP地址和端口号组成了所谓的Socket,Socket是网络上运行的程序之间双向通信链路的最后终结点,它是TCP和UDP的基础。
端口号的范围是从0 到65535,其中0~1023为系统所保留。系统常用端口号:21(ftp)、23(telnet)、25(smtp)、80(http)等
3) 协议:通讯双方为了完成预先制定好的功能而达成的约定。
4) TCP/IP(Transmission Control Protocol传输控制协议/Internet Protocol网间协议)协议是Internet的主要协议,
定义了计算机和外设进行通信所使用的规则。
TCP/IP网络参考模型包括五个层次:
物理层Physical(硬件)、
数据链路层 、
网络层Network(IP协议:寻址和路由)
传输层Transport(通过TCP和UDP协议来控制端点到端点的通信) 、
应用层Application(HTTP,FTP,TELET,SMTP,POPS,DNS)
注:层与层之间是单向依赖关系。对等层之间会有一条虚连接。
5) TCP协议和UDP协议
TCP协议:传输控制协议,在网络端点与端点之间建立持续的连接而进行通信。
建立连接后,发送端将发送的数据以字节流的方式按顺序发送出去;接收端则按顺序接收字节流数据。这与打电话的过程是相似的。
TCP协议具有可靠性和有序性,并且以字节流的方式发送数据,它通常被称为流通信协议。

UDP协议:用户数据报协议,是一种无连接的传输协议。
利用UDP协议进行数据传输时,首先需要将要传输的数据定义成数据报(Datagram),
在数据报中指明数据所要达到的端点(Socket,主机地址和端口号),然后再将数据报发送出去。
这种传输方式是无序的,也不能确保绝对的安全可靠,但它很简单也具有比较高的效率,这与通过邮局发送邮件的情形相似。
TCP协议和UDP协议的适用场合:
a.当对所传输的数据具有时序性和可靠性等要求时,应使用TCP协议
b.当传输的数据比较简单、对时序等无要求时,UDP协议能发挥更好的作用,如ping、发送时间数据等。
2.网络套接字Socket(TCP)
1) Socket用来定义网络通信的端点,Socket是由IP地址和端口号组成的。
Socket的输入/输出流管理
public InputStream getInputStream()
public OutputStream getOutputStream()
2) 基于TCP协议实现网络通信的类有两个:
客户端使用的java.net.Socket类和服务器端使用的java.net.ServerSocket类。
在服务器端通过指定一个用来等待的连接的端口号创建一个 ServerSocket实例,ServerSocket类的accept方法使服务器处于阻塞状态,等待用户请求。。
在客户端通过指定一个主机和端口号创建一个 Socket实例,连到服务器上。
3) 创建一个TCP服务器端程序的步骤:
a. 创建一个ServerSocket,同时指定端口号
b. 通过accept()方法接受客户连接请求
c. 创建一个服务线程处理新的连接
d. 在服务线程中,从socket中获得I/O流
e. 对I/O流进行读写操作,完成与客户的交互
f. 关闭I/O流
g. 关闭Socket
4) 创建TCP客户端程序的步骤:
a. 创建Socket,指定主机和端口号
b. 获得I/O流
c. 对I/O流进行读写操作
d. 关闭I/O流
e. 关闭Socket

作业:

1 复习实现全部课堂代码
2 通过TCP Socket编程实现简单聊天系统,由TalkClient类和TalkServer类组成:
a. TalkClient类是聊天客户端程序,通过控制台输入文本信息和接收另一个客户端的文本信息,输入字符串"quit"后可以退出客户端程序。
b. TalkServer类是聊天服务器端程序,能够同时处理多个聊天客户端。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值