网络编程 01_网络基础_IP_TCP_UDP
(http://blog.csdn.net/jinhongliang123/article/details/7943222)
本章内容
1 网络基础
2 TCP/IP协议
3 IP地址
4 Socket通信
--------------TCP/UDP
网络基础概念
1 什么是计算机网络
----------把分布在不同地理区域的计算机与专门的外部设备用通信线路互连成一个规模大,功能强的网络系统,从而使众多的计算机可以方便地互相传递信息,共享硬件,软件,数据信息等资源。
2 计算机网络的主要功能
----------资源共享
----------信息传输与集中处理
----------均衡负荷与分布处理
----------综合信息服务(www/综合业务数字网络 ISDN)
网络通信协议及接口
1 什么是网络通信协议
----------计算机网络中实现通信必须有一些约定即通信协议,对速率,传输代码,代码结构,传输控制步骤,出错控制等制定标准。2 网络通信接口
----------为了使两个节点之间能进行对话,必须在它们之间建立通信工具(即接口),使彼此之间能进行信息交换。接口包括两部分:
--------------------硬件装置:实现结点之间的信息传送
--------------------软件装置:规定双方进行通信的约定协议
通信协议分层的思想
1 为什么要分层
----------由于结点之间联系很复杂,在制定协议时,把复杂成份分解成一些简单的成份,再将它们复合起来。最常用的复合方式是层次方式,即同层间可以通信,上一层可以调用下一层,而与再下一层不发生关系。各层互不影响,利于系统的开发和扩展。
2 通信协议的分层规定
----------把用户应用程序作为最高层,把物理通信线路作为最底层,将其间的协议处理分为若干层,规定每层处理的任务,也规定每层的接口标准。
参考模型
![](https://img-my.csdn.net/uploads/201209/04/1346752808_6753.png)
数据封装
数据拆封
IP协议(给我们提供了IP地址)
TCP/IP详解
Ip(Internet Protocol)协议时网际层的主要协议,支持网间互连的数据报通信。它提供主要功能有:
1 无连接数据报传送
2 数据报路由选择和差错控制
TCP协议和UDP协议
TCP(transmission control protocol)
是专门设计用于在不可靠的因特网上提供可靠的,端到端的字节流通信的协议。它是一种面向连接的协议。TCP连接是字节流而非报文流。
UDP(user data protocol)
UDP向应用程序提供了一种发送封装的原始IP数据报的方法,并且发送时无需建立连接。是一种不可靠的连接。
实例:(马士兵--网络)先运行 服务器端,再运行 客户端
import java.io.*;
import java.net.*;
public class TCPServer {
public static void main(String[] args) throws Exception{
ServerSocket ss=new ServerSocket(6666);
while(true){
Socket s=ss.accept();//这个方法是阻塞式的
System.out.println("A client connetted!");
DataInputStream dis=new DataInputStream(s.getInputStream());
System.out.println(dis.readUTF());//readUTF()阻塞式的
dis.close();
s.close();
}
}
}
import java.io.*;
import java.net.*;
public class TCPClient {
public static void main(String[] args) throws Exception{
Socket s=new Socket("127.0.0.1", 6666);
OutputStream os=s.getOutputStream();
DataOutputStream dos=new DataOutputStream(os);
dos.writeUTF("Hello, server");
dos.flush();
dos.close();
s.close();
}
}
结果:
A client connetted!
Hello, server