Java网络编程从入门到精通(31):非阻塞I/O简介
在网络应用中,一般可以采用同步I/O(阻塞I/O)和非阻塞I/O两种方式进行数据通讯。这两种方式并非互相排斥和互相取代。我们可以在平时的应用中单独采用其中一种通讯方式,也可以混合使用这两种通讯方式。在本文中就什么是非阻塞I/O以及为什么要使用这种通讯方式进行了介绍,在下一篇文章中给出了一个简单的例子来演示在网络应用中如何使用非阻塞I/O进行通讯。 一、什么是非阻塞I/O 我们可以将同步I/...
Java:网络编程之登陆服务器
1. 客服端:浏览器(telnet) 服务端:自定义 2. 客服端:浏览器 服务端:TomCat服务器 3. 客服端:自定义 服务端:TomCat服务器 //例子如下: import java.net.*; import java.io.*; class ServerDemo { public static void main(String[] args)throws Exce...
Java中网络编程之TCP协议
一、TCP的基本概念 TCP是专门设计用于在不可靠的英特网上提供可靠的、端到端的字节流通信的协议,是一个面向连接的协议,TCP连接是字节流而非报文流。UDP和TCP各有65536个端口号互不影响。 二、单线程服务端 以下代码只能实现服务端和客户端的同步对话。服务端处理完一个客户端请求,才会处理另一个客户端请求。服务器端的输出效果是Client1阻塞20秒,Client2不会执行。必须...
Java网络编程从入门到精通(21):HTTP消息的格式
当用户在浏览器中输入一个基于HTTP协议的URL时(以http://开头的URL),就相当于通知器按着这个URL组织生成一个HTTP请求,并交过个请求发送到服务器;同时,等待服务器的响应。无论是请求还是响应,都统称为HTTP消息。 HTTP协议分为两部分: 1. HTTP请求消息。 2. HTTP响应消息。 一、HTTP请求消息 HTTP请求消息分为请求消息头以及请求实体内容两...
Java网络编程从入门到精通(33):非阻塞I/O的缓冲区(Buffer)
如果将同步I/O方式下的数据传输比做数据传输的零星方式(这里的零星是指在数据传输的过程中是以零星的字节方式进行的),那么就可以将非阻塞I/O方式下的数据传输比做数据传输的集装箱方式(在字节和低层数据传输之间,多了一层缓冲区,因此,可以将缓冲区看做是装载字节的集装箱)。大家可以想象,如果我们要运送比较少的货物,用集装箱好象有点不太合算,而如果要运送上百吨的货物,用集装箱来运送的成本会更低。在数据传....
Java网络编程之简单Socket和ServerSocket
常用基本类 InetAddress类是java中表示IP的类。主要用于Socket,ServerSocket,URL,DatagramSocket等 创建InetAddress用三个静态方法 getByName(String hostname)throws UnknownHostException getAllByName(String hostname)throws Un...
Java网络编程之简单UDP通信
UDP是一种基于不可靠连接的协议,它无法保证传输的数据能不丢失不重复到达,尽自己努力传输,但是不会重传,不需要建立连接,则它所需要的时间会很快。它是基于数据报为单位进行传输的,不想TCP是一种基于流进行传输的。在UDP中没有所谓的Socket和ServerSocket来区分一个是客户端一个是服务器端,相反在UDP中客户端和服务器端都是基于相同的DatagramSocket...
Java网络编程之JavaMail发送邮件和接受邮件
JavaMail是API 是一个标准的Java扩展,它是J2EE的范畴,在J2EE开发过程中可能会需要用到这个API。在学习JavaMail之前,有必须要对现在的互联网的邮件协议进行有个大体的了解。 邮件协议 在Internet中,常用的邮件操作相关的协议有3个—SMTP、POP、IMAP。 简单邮件传输协议(simple mail transferprotocol,SMTP),这个协议是邮件.....
Java网络编程之URLConnection协议处理器
URLConnection是一个协议处理器中的一个类,它是表示指向URL所指定的资源的活动连接。主要用于两个方面,一个是与服务器(特别是HTTP服务器)的交互,可以用来查看服务器发送的首部,设置连接的属性,设置客户端的请求的首部等。利用它也可以实现POST和PUT方法来发送数据。另一个方面是Java的协议处理器机制的一部分。所谓的协议处理器就是将处理协议的细节从处理特定数...
Java网络编程之非阻塞I/O服务器TCP实例
非阻塞I/O是基于事件机制驱动设计的,通道会事先注册在一个监听器上,并且注明其所要关注的事件,当事件触发的时候会自动的由系统来调用这些符合条件的通道。 要获取一个服务器端通道,一般需要利用ServerSocketChannel.open()创建一个服务器端通道。然后利用该服务器端通道获取其对等的ServerSocket对象,设置该对象的监听端口。服务器端通道S...
本页面内关键词为智能算法引擎基于机器学习所生成,如有任何问题,可在页面下方点击"联系我们"与我们沟通。