TCP/IP HTTP Socket区别
来源:互联网 发布:python实现堆排序算法 编辑:程序博客网 时间:2024/06/06 13:27
1、TCP/IP协议4层模型
电子设备之间要连入网络,就有遵循一定的网络协议。TCP/IP就是这样一个协议(Transmisssion Control Protocol/Internet Protocol)。这个协议从电子设备中物理介质—-IP协议—-TCP/UDP——最终到HTTP/TFP/SMTP协议。通过这样一层一层的协议,实现网络连接。
1、网络访问层,包括数据链路层和物理层。
物理层:物理层是定义物理介质的各种特性。
数据链路层是负责接收IP数据包并通过网络发送,或者从网络上接收物理帧,抽出IP数据包,交给IP层。
2、网络层
网络层主要包括IP协议((Internet Protocol),ICMP层(Internet Control Message Protocol),控件报文协议,ARP地址转换协议等
IP层是网络层的核心:将IP封装后给接口层
ICMP是网络层补充,可以回送报文。用来检测网络是否通畅。
Ping命令就是发送ICMP的echo包,通过回送echo relay进行网络测试。
3、传输层
TCP的三次握手就是在传输层完成的。
作用主要包括格式化信息流,提供可靠传输,传层协议规定接收端必须发送确认。假如丢失,重新发送,这样完成三次握手。
传输层协议主要是:TCP(Transmission Control Protocol)和UDP( User Datagram protocal)
4、应用层
向用户提供一组常用的应用程序,比如电子邮件,文件传输访问,远程登陆
HTTP:Hypertext Transfer Protocol超文本传输协议,端口80
FTP:文件传输协议,端口是20H
DNS:域名解析服务,提供域名到ip地址转换。
SMTP:简单邮件传输协议。
2、HTTP协议
http://blog.csdn.net/androidxiaogang/article/details/51973351
http协议处于4层网络协议的最顶层应用层(物理层,数据链路层,网络层,传输层,应用层)。以浏览器与服务器之间通信为例,就好像人与人之间的写信,我们必须知道收件人格式(比如信的语言,地址,姓名,还有信的内容等),如果没有这此格式,好比不的懂外语,和外国人写信,是没有办法相互理解的。下面我们通过Fidder抓包来看看浏览器与服务器之间是如何通信的。
3、Socket
上面描述了TCP/IP协议,也就是如果我们开发应用需要网络通信,就必须按照上述协议。但开发者怎么做呢?因此就出来socket编程,它的本质就是TCP/IP为开发者提供的编程接口
示例代码如下
使用Socket的服务器端
public class ServerDemo { /** * @param args * @throws IOException */ public static void main(String[] args) throws IOException { // 创建服务器端Socket对象; ServerSocket ss = new ServerSocket(14910); // 2、监听(待命,等待,等待数据流过来) System.out.println("Server已经启动监听"); Socket s = ss.accept(); // 3、使用输入流对象接收数据 InputStream is = s.getInputStream(); byte[] bys = new byte[1024]; int len = is.read(bys); System.out.println(new String(bys, 0, len)); // 4、释放资源 s.close(); // ss.close();//服务器一般不关闭 }}
客户端代码
public class ClientSocket { /** * @param args * @throws IOException * @throws UnknownHostException */ public static void main(String[] args) throws UnknownHostException, IOException { // 1、 创建socket对象 Socket s = new Socket(InetAddress.getByName("yu"), 14910); // 2.获取输出流对象 OutputStream os = s.getOutputStream(); // 3.输出数据 os.write("客户端------hello tcp!".getBytes()); // 4.释放资源 s.close(); }}
- tcp/ip ,http,socket 区别
- tcp/ip、http、socket区别
- TCP/IP HTTP Socket区别
- TCP/IP、Http、Socket的区别
- TCP/IP、Http、Socket的区别
- TCP/IP、Http、Socket的区别
- TCP/IP、Http、Socket的区别
- TCP/IP、Http、Socket的区别
- TCP/IP、Http、Socket的区别
- TCP/IP、Http、Socket的区别
- TCP/IP、Http、Socket的区别
- TCP,IP,HTTP,SOCKET区别和联系
- TCP,IP,HTTP,SOCKET区别和联系
- TCP/IP、Http、Socket的区别
- TCP/IP、Http、Socket的区别
- TCP/IP、Http、Socket的区别
- TCP,IP,HTTP,SOCKET区别和联系
- TCP/IP,Http,Socket的区别
- BooleanUtils就这1张图,必备(四)
- 个人学习_Thread&Runnable
- java内部类
- ClassUtils就这1张图,必备(五)
- 关于Activity设置configChanges属性
- TCP/IP HTTP Socket区别
- JavaScript脚本语言
- 绘心2012-12
- CF 678C 暑假集训13(gcd,lcm)
- Ubuntu 14.04 64位版安装 QQ国际版实测可用
- linux下的磁盘空间使用
- 【C++】面试题:模拟实现string类(版本一:用深度拷贝来实现 )
- 自定义组合控件之——旋转的菜单(老优酷菜单)
- Java 类加载机制详解