黑马程序员--TCP&UDP
2013-08-13 10:21
162 查看
----------------------
ASP.Net+Android+IO开发S、.Net培训、期待与您交流! ----------------------
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
网络通讯要素
. IP地址
. 网络中设备的标识
. 不易记忆,可用主机名
. 本地回环地址:127.0.0.1 主机名:localhost
. 端口号
. 用于标识进程的逻辑地址,不同进程的标识
. 有效端口:0~65535,其中0~1024系统使用或保留端口。
-----------------------------------
. 传输协议
. 通讯的规则
. 常见协议:TCP,UDP
-----------------------------------
UDP:
.数据报通信协议,属于传输层,是一种无连接的协议。
. 每个数据报都是一条独立的信息,包括完整的源地址或目的地址。
. 它在网络上会以任何可能的路径传往目的地,所以能否到达目的地、到达目的地的时间及内容的正确性都是不能保证的。
特点:
. 将数据及源和目的封装成数据包中,不需要建立连接
. 每个数据报的大小在限制在64k内
. 因无连接,是不可靠协议
. 不需要建立连接,速度快
-----------------------------------
TCP:传输控制协议,属于传输层,是一种面向连接的协议。
发送方和接收方所对应的两个socket之间必须建立连接,当一个socket(通常是服务器socket)等待建立连接,另一个socket可以要求进行连接,一旦这两个socket连接起来,
它们就可以进行双向数据传输,双方都可以进行发送或接收操作。
特点:
. 建立连接,形成传输数据的通道。
. 在连接中进行大数据量传输
. 通过三次握手完成连接,是可靠协议
. 必须建立连接,效率会稍低
-----------------------------------
总的来说,TCP协议提供可靠的服务,UDP协议提供高效率的服务。
高可靠性的TCP服务提供面向连接的服务,主要用于一次传输大量报文的情形,如文件传输,远程登录等;
高效率的UDP协议提供无连接的数据报服务,用于一次传输少量的报文。即使发生传输错误,也可以重新传输并且不会为此付出多少代价。如:聊天软件、视频会议。
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TCP
-----------------------------------
服务器:属于被动等待连接,所以服务器端启动后,只需要监听本地计算机的某个固定端口即可。
构造方法:
ServerSocket();创建非绑定服务器套接字。
ServerSocket(int port);创建绑定到特定端口的服务器套接字。
ServerSocket(int port,int count);count表示服务器所能支持的最大连接数。
-----------------------------------
客户端:首先发起连接的程序。客户端一般实现程序基本界面和基本逻辑。
常用构造方法:
Socket();通过系统默认类型的 SocketImpl 创建未连接套接字。
Socket(InetAddress address,int port);创建一个流套接字并将其连接到指定 IP 地址的指定端口号。
Socket(String host,int port);创建一个流套接字并将其连接到指定主机上的指定端口号。
-----------------------------------
服务器
1、监听端口
建立ServerSocket对象并指定端口,ServerSocket只负责接收连接
ServerSocket serverSocket=new ServerSocket(int port);
2、获取连接
Socket s=serverSocket.accept();
3、交换数据
通过Socket对象取得得输入流,读取客户端信息
InputStream in=s.getInputStream();
通过Socket对象取得输出流,将数据传至客户端
OutputStream out=s.getOutputStream();
4、关闭资源s.close();
客户端
1、建立连接
Socket socket=new Socket(InetAddress address,int port);
2、交换数据
OutputStream out=s.getOutputStream();
InputStream in=s.getInputStream();
3、关闭资源
s.close();
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
UDP
常用类:
DatagramSocket:用于在程序建立传送数据报的通信协议。用来接收和发送数据报。
构造方法:DatagramSocket()、DatagramSocket(int port)。
DatagramPacket:传送数据报的载体。
构造方法:接收时:DatagramPacket(byte buf[],int length);
发送时:DatagramPacket(byte buf[],int length,InetAddress address,int iport);
-----------------------------------
接收端:
1.创建接收端;
2.创建数据包,存储接收来的数据;
3.调用socket接收方法,接收数据;
4.取出数据包中数据;
5.关闭socket;
DatagramSocket socket=new DatagramSocket(int port);//(1)
DatagramPacket packet=new DatagramPacket(buf,256);//(2)
socket.receive(packet);//(3)
String data=new String(packet.getData());//(4)
socket.close();//(5)
-----------------------------------
发送端:
(1)创建发送端;
(2)创建数据包,封装数据;
(3)调用socket发送方法,发送数据;
(5)关闭socket;
DatagramSocket socket=new DatagramSocket(int port);//(1)
DatagramPacket packet=new DatagramPacket(buf,256,InetAddress address,int iport);//(2)
socket.send(packet);//(3)
socket.close();//(4)
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
----------------------
ASP.Net+Android+IOS开发、.Net培训、期待与您交流! ----------------------详细请查看:http://edu.csdn.net
ASP.Net+Android+IO开发S、.Net培训、期待与您交流! ----------------------
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
网络通讯要素
. IP地址
. 网络中设备的标识
. 不易记忆,可用主机名
. 本地回环地址:127.0.0.1 主机名:localhost
. 端口号
. 用于标识进程的逻辑地址,不同进程的标识
. 有效端口:0~65535,其中0~1024系统使用或保留端口。
-----------------------------------
. 传输协议
. 通讯的规则
. 常见协议:TCP,UDP
-----------------------------------
UDP:
.数据报通信协议,属于传输层,是一种无连接的协议。
. 每个数据报都是一条独立的信息,包括完整的源地址或目的地址。
. 它在网络上会以任何可能的路径传往目的地,所以能否到达目的地、到达目的地的时间及内容的正确性都是不能保证的。
特点:
. 将数据及源和目的封装成数据包中,不需要建立连接
. 每个数据报的大小在限制在64k内
. 因无连接,是不可靠协议
. 不需要建立连接,速度快
-----------------------------------
TCP:传输控制协议,属于传输层,是一种面向连接的协议。
发送方和接收方所对应的两个socket之间必须建立连接,当一个socket(通常是服务器socket)等待建立连接,另一个socket可以要求进行连接,一旦这两个socket连接起来,
它们就可以进行双向数据传输,双方都可以进行发送或接收操作。
特点:
. 建立连接,形成传输数据的通道。
. 在连接中进行大数据量传输
. 通过三次握手完成连接,是可靠协议
. 必须建立连接,效率会稍低
-----------------------------------
总的来说,TCP协议提供可靠的服务,UDP协议提供高效率的服务。
高可靠性的TCP服务提供面向连接的服务,主要用于一次传输大量报文的情形,如文件传输,远程登录等;
高效率的UDP协议提供无连接的数据报服务,用于一次传输少量的报文。即使发生传输错误,也可以重新传输并且不会为此付出多少代价。如:聊天软件、视频会议。
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TCP
-----------------------------------
服务器:属于被动等待连接,所以服务器端启动后,只需要监听本地计算机的某个固定端口即可。
构造方法:
ServerSocket();创建非绑定服务器套接字。
ServerSocket(int port);创建绑定到特定端口的服务器套接字。
ServerSocket(int port,int count);count表示服务器所能支持的最大连接数。
-----------------------------------
客户端:首先发起连接的程序。客户端一般实现程序基本界面和基本逻辑。
常用构造方法:
Socket();通过系统默认类型的 SocketImpl 创建未连接套接字。
Socket(InetAddress address,int port);创建一个流套接字并将其连接到指定 IP 地址的指定端口号。
Socket(String host,int port);创建一个流套接字并将其连接到指定主机上的指定端口号。
-----------------------------------
服务器
1、监听端口
建立ServerSocket对象并指定端口,ServerSocket只负责接收连接
ServerSocket serverSocket=new ServerSocket(int port);
2、获取连接
Socket s=serverSocket.accept();
3、交换数据
通过Socket对象取得得输入流,读取客户端信息
InputStream in=s.getInputStream();
通过Socket对象取得输出流,将数据传至客户端
OutputStream out=s.getOutputStream();
4、关闭资源s.close();
客户端
1、建立连接
Socket socket=new Socket(InetAddress address,int port);
2、交换数据
OutputStream out=s.getOutputStream();
InputStream in=s.getInputStream();
3、关闭资源
s.close();
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
UDP
常用类:
DatagramSocket:用于在程序建立传送数据报的通信协议。用来接收和发送数据报。
构造方法:DatagramSocket()、DatagramSocket(int port)。
DatagramPacket:传送数据报的载体。
构造方法:接收时:DatagramPacket(byte buf[],int length);
发送时:DatagramPacket(byte buf[],int length,InetAddress address,int iport);
-----------------------------------
接收端:
1.创建接收端;
2.创建数据包,存储接收来的数据;
3.调用socket接收方法,接收数据;
4.取出数据包中数据;
5.关闭socket;
DatagramSocket socket=new DatagramSocket(int port);//(1)
DatagramPacket packet=new DatagramPacket(buf,256);//(2)
socket.receive(packet);//(3)
String data=new String(packet.getData());//(4)
socket.close();//(5)
-----------------------------------
发送端:
(1)创建发送端;
(2)创建数据包,封装数据;
(3)调用socket发送方法,发送数据;
(5)关闭socket;
DatagramSocket socket=new DatagramSocket(int port);//(1)
DatagramPacket packet=new DatagramPacket(buf,256,InetAddress address,int iport);//(2)
socket.send(packet);//(3)
socket.close();//(4)
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
----------------------
ASP.Net+Android+IOS开发、.Net培训、期待与您交流! ----------------------详细请查看:http://edu.csdn.net
相关文章推荐
- 黑马程序员_毕向东JAVA基础_网络编程(概述&UDP&TCP)
- 黑马程序员-网络编程TCP&UDP
- 黑马程序员------网络编程(TCP&UDP)
- 高性能 TCP & UDP 通信框架 HP-Socket v3.2.3 正式公布
- 黑马程序员_网络编程(UDP、TCP特点)
- linux socket编程TCP&UDP
- 高性能 TCP & UDP 通信框架 HP-Socket v3.3.1 正式发布
- 黑马程序员_网络编程TCP/UDP原理及其流程比较(java)
- IPV6 UDP编程实例 & IPV6 TCP编程实例
- TCP&UDP协议
- 黑马程序员_学习笔记:15) 网络编程:Socket(udp、tcp)
- 黑马程序员<网络编程UDP\TCP>
- Socket 通信原理 -- Android客户端和服务器以TCP&&UDP方式互通
- Linux C 文件传输程序(TCP && UDP) 遇到的一些问题
- 黑马程序员——网络编程(TCP、UDP)
- android 之 socket编程(TCP&UDP)
- 高性能 TCP & UDP 通信框架 HP-Socket v3.3.1 正式发布
- 黑马程序员—网络编程TCP与UDP简介
- CCNA-ACL中关于TCP&UDP端口的确认access-list&eq
- 黑马程序员_网络编程学习笔记-->代码主要是对UDP协议的讲解