摘要: 除了普通的Socket与ServerSocket实现的阻塞式通信外,java提供了非阻塞式通信的NIO API。先看一下NIO的实现原理。 从图中可以看出,服务器上所有Channel(包括ServerSocketChannel和SocketChannel)都需要向Selector注册,而该Selector则负责监视这些Socket的IO状态,当其中任意一个或者多个Channel具有可用的IO操作时,该Selector的select()方法将会返回大于0的整数,该整数值就表示该Selector上有多少个Channel具有可用的IO操作,并提供了selectedKeys()方法来返回这些Chan. 阅读全文
posted @ 2013-02-17 21:16 转航 阅读(977) 评论(0) 推荐(0) 编辑
摘要: 我们知道,程序可以通过ServerSocket和Socket两个类来实现TCP服务器、TCP客户端。下面我们通过一个简单的demo看一下代码中具体是怎么实现的。 Client.javaimport java.io.BufferedReader;import java.io.IOException;import java.io.InputStreamReader;import java.net.Socket;public class Client { public static void main(String[]args) throws IOException{ Socket socket.. 阅读全文
posted @ 2013-02-17 20:45 转航 阅读(265) 评论(0) 推荐(0) 编辑
摘要: 一、网络编程基本概念1.OSI与TCP/IP体系模型2.IP和端口解决了文章最开始提到的定位的问题。IP在互联网中能唯一标识一台计算机,是每一台计算机的唯一标识(身份证);网络编程是和远程计算机的通信,所以必须先能定位到远程计算机;IP帮助解决此问题;一台计算机中可能有很多进程,具体和哪一个进程进行通信,这就得靠端口来识别;IP和端口能唯一定位到需要通信的进程。这里的IP表示地址,区别于IP协议。在OSI体系还是TCP/IP体系中,IP协议位于网际层,来封装IP地址到报文中。3.TCP和UDP协议TCP是Tranfer Control Protocol的简称,是一种面向连接的保证可靠传输的协议 阅读全文
posted @ 2013-02-17 20:21 转航 阅读(167) 评论(0) 推荐(0) 编辑