JAVA: socket接口、http协议、TCP/IP协议、FTP协议总结:
2015-03-09 10:44
351 查看
数据链路层:Wi-Fi(IEEE 802.11) · WiMAX(IEEE 802.16) · ARP · RARP ·ATM · DTM · 令牌环 · 以太网 ·FDDI · 帧中继 · GPRS · EVDO ·HSPA · HDLC · PPP · L2TP ·PPTP · ISDN·STP 等
网络层协议:IP (IPv4 · IPv6) · ICMP· ICMPv6·IGMP ·IS-IS · IPsec 等
传输层协议:TCP · UDP · TLS · DCCP · SCTP · RSVP · OSPF 等
应用层协议:DHCP · DNS · FTP · Gopher · HTTP· IMAP4 · IRC · NNTP · XMPP ·POP3 · SIP · SMTP ·SNMP · SSH ·TELNET · RPC · RTCP · RTP ·RTSP· SDP · SOAP · GTP · STUN · NTP· SSDP · BGP · RIP 等
什么是Socket
是独立于具体协议的网络接口,Socket接口定义了许多函数或例程,程序员可以用它们来开发TCP/IP网络上的应用程序。要学Internet上的TCP/IP网络编程,必须理解Socket接口。
Socket接口设计者最先是将接口放在Unix操作系统里面的。如果了Unix系统的输入和输出的话,就很容易了解Socket了。网络的Socket数据传输是一种特殊的I/O。常用的Socket类型有两种:
流式Socket(SOCK_STREAM)和数据报式Socket(SOCK_DGRAM)。流式是一种面向连接的Socket,针对于面向连接的TCP服务应用;数据报式Socket是一种无连接的Socket,对应于无连接的UDP服务应用。
下面是JAVA服务器端例子:
// 创建ServerSocket,不指定IP则默认监测本机ip ,端口是4321 ServerSocket serverSocket = new ServerSocket(4321); while (true) { // 接受客户端请求 Socket client = serverSocket.accept(); System.out.println("accept"); try { // 接收客户端消息 BufferedReader in = new BufferedReader( new InputStreamReader(client.getInputStream(),"UTF-8")); String msg = in.readLine(); } }
socket = new Socket("192.168.1.001", 4321); // 创建输出流 PrintWriter out = new PrintWriter(new BufferedWriter( new OutputStreamWriter(socket.getOutputStream(), "UTF-8")), true); out.println("输出xxxxxx"); // 读取输入流 BufferedReader br = new BufferedReader(new InputStreamReader( socket.getInputStream(), "UTF-8")); String msg = br.readLine();// 返回结果
HTTP协议,android代码如下:
InputStream inputStream = null; URL url = new URL(IMAGE_PATH); // 创建url对象 HttpURLConnection httpURLConnection = null; try { httpURLConnection = (HttpURLConnection) url.openConnection(); httpURLConnection.setConnectTimeout(10000);// 设置超时10秒 httpURLConnection.setRequestMethod("GET"); // get请求 //To upload data to a web server, configure the connection for output using setDoOutput(true). httpURLConnection.setDoOutput(true);//允许上传 httpURLConnection.setDoInput(true);//允许下载 int responseCode = httpURLConnection.getResponseCode(); if (responseCode == HttpURLConnection.HTTP_OK) {//返回200则OK inputStream = httpURLConnection.getInputStream(); // 获取输入流 } } catch (Exception e) { e.printStackTrace(); } finally { //Disconnecting releases the resources held by a connection so they may be closed or reused. httpURLConnection.disconnect();// 释放连接 }
相关文章推荐
- Java学习总结之第十六章 Socket用法详解
- 接口java.io.Serializable的用处 (全面搜集总结)
- J2EE总结:Java命名与目录接口JNDI
- Java关键字final、static,抽象类,接口使用总结收藏
- TCP/IP协议(Socket)做服务器,HTTP协议做客户端
- Java关键字final、static,抽象类,接口使用总结
- 关于Java当中的接口的总结,一点点心得
- Java容器学习笔记(二) Set接口及其实现类的相关知识总结
- Java容器学习笔记(二) Set接口及其实现类的相关知识总结
- 通过JAVA的net包实现JAVA http接口访问错误总结
- Java基础:类,抽象类,接口关系总结
- Java【多线程知识总结(4)】通过实现Runnable接口创建线程
- java中三种容器接口List .Set .Map 及其java容器总结
- TCP/IP协议(Socket)做服务器,HTTP协议做客户端
- Java【多线程知识总结(6)】使用Runnable接口创建多线程,处理同一个资源
- Java学习总结之第七章 接口
- java接口原理总结
- JNDI(Java 命名和目录接口)(四)-----总结
- J2EE总结:Java命名与目录接口JNDI
- Java:Socket编程学习总结