TCP/IP Socket
licl19870605
这个作者很懒,什么都没留下…
展开
-
《Java TCP/IP Socket编程》读书笔记(4)
2.3 UDP套接字UDP协议提供了一种不同于TCP协议的端对端服务,实际上UDP只实现了两个功能:1)、 在IP协议的基础上添加了另一层地址(端口)2)、对数据传输过程中可能产生的错误进行了检测,并抛弃了已损坏的数据。UDP套接字与TCP套接字的不同点:1. UDP协议在使用前不需要进行连接。2. UDP协议保存边界信息。2.3.1 UDP客户端UDP客户原创 2013-01-26 23:25:25 · 1646 阅读 · 0 评论 -
《Java TCP/IP Socket编程》读书笔记(14)
4.2 阻塞和超时Socket的I/O调用可能会因为多种原因而阻塞。数据输入方法read()和receive()在没有数据可读时会阻塞。TCP套接字的write()方法在没有足够的空间缓存传输的数据时可能阻塞。 4.2.1 accept(),read()和receive()对于这些方法,我们可以使用Socket类、ServerSocket类和DatagramSocket原创 2013-01-30 23:23:01 · 1792 阅读 · 0 评论 -
《Java TCP/IP Socket编程》读书笔记(15)
4.4 控制默认的行为4.4.1 Keep-alive如果一段时间内没有数据交换,通信的每个终端可能都会怀疑对方是否还处于活跃状态。TCP协议提供了一种keep-alive的机制,该机制在经过一段不活动时间后,将向另一个终端发送一个探测消息。如果另一个终端还出于活跃状态,它将回复一个确认消息。如果经过几次尝试后依然没有收到另一终端的确认消息,则终止发送探测信息,关闭套接字,并在下一原创 2013-01-30 23:29:17 · 2705 阅读 · 0 评论 -
《Java TCP/IP Socket编程》读书笔记(10)
3.5.3.3 基于文本编解码和UDP套接字客户端package com.suifeng.tcpip.chapter3.vote;import java.io.IOException;import java.net.DatagramPacket;import java.net.DatagramSocket;import java.net.InetAddress;原创 2013-01-28 23:08:29 · 1476 阅读 · 0 评论 -
《Java TCP/IP Socket编程》读书笔记(12)
4.1.4 线程池每个新线程都会消耗系统资源:创建一个线程将占用CPU周期,而且每个线程都自己的数据结构(如,栈)也要消耗系统内存。另外,当一个线程阻塞(block)时,JVM将保存其状态,选择另外一个线程运行,并在上下文转换(context switch)时恢复阻塞线程的状态。随着线程数的增加,线程将消耗越来越多的系统资源。这将最终导致系统花费更多的时间来处理上下文转换和线程管理,更少的原创 2013-01-30 23:13:57 · 1370 阅读 · 0 评论 -
《Java TCP/IP Socket编程》读书笔记(13)
4.1.5 系统管理调度——Executor接口Executor接口(java.util.concurrent包的一部分)就代表了一个根据某种策略来执行Runnable实例的对象,其中可能包括了排队和调度的细节,或如何选择要执行的任务。Executor接口只定义了一个方法:interface Executor {void execute(Runnable task);}Ja原创 2013-01-30 23:18:27 · 1533 阅读 · 0 评论 -
《Java TCP/IP Socket编程》读书笔记(11)
第四章 进阶4.1 多任务处理迭代服务器:当一个客户端向一个已经被其他客户端占用的服务器发送连接请求时,虽然其在连接建立后即可向服务器端发送数据,服务器端在处理完已有客户端的请求前,却不会对新的客户端作出响应。并行服务器:可以单独处理没一个连接,且不会产生干扰。并行服务器分为两种:一客户一线程和线程池。4.1.1 Java多线程Java提供了两种在一个新线程中执行任务的原创 2013-01-30 23:10:24 · 1401 阅读 · 1 评论 -
《Java TCP/IP Socket编程》读书笔记(9)
3.5.3 发送和接收下面是一个投票服务器用到的服务,用于处理服务器端接收到的投票信息的处理。package com.suifeng.tcpip.chapter3.vote;import java.util.HashMap;import java.util.Map;/** * 服务器端对获取的投票信息进行处理 * @author Administrator * */原创 2013-01-28 23:03:21 · 1254 阅读 · 0 评论 -
《Java TCP/IP Socket编程》读书笔记(5)
3.1 信息编码3.1.1 基本整型TCP和UDP套接字使我们能够发送和接收字节序列(数组),及范围在0~255之间的整数。下面考虑发送一个byte型整数、一个short型整数、一个int型整数和一个long型整数,这四个类型在Java中依次用1、2、4、8个字节进行标示。1. 发送顺序,可以由低位到高位发送(little-endian),也可以由高位到低位发送原创 2013-01-27 23:21:32 · 1548 阅读 · 0 评论 -
《Java TCP/IP Socket编程》读书笔记(6)
3.2 组合输入输出流Java中与流相关的类可以组合起来从而提供强大的功能。我们可以将一个Socket实例的OutputStream包装在一个BufferedOutputStream实例中,这样可以先将字节暂时缓存在一起,然后再一次全部发送到底层的通信信道中,以提高程序的性能。我们还能再将这个BufferedOutputStream实例包裹在一个DataOutputStream实例中,以实现发原创 2013-01-27 23:31:08 · 1643 阅读 · 0 评论 -
《Java TCP/IP Socket编程》读书笔记(8)
3.5 构建和解析消息协议下面看一个简单的例子。程序支持两种请求。一种是查询(inquiry),即向服务器询问给定候选人当前获得的投票总数。服务器发回一个响应消息,包含了原来的候选人ID和该候选人当前(查询请求收到时)获得的选票总数。另一种是投票(voting)请求,即向指定候选人投一票。服务器对这种请求也发回响应消息,包含了候选人ID和其获得的选票数(包括了刚投的一票)。下面是投原创 2013-01-28 22:52:30 · 1352 阅读 · 0 评论 -
《Java TCP/IP Socket编程》读书笔记(1)
1.1 计算机网络、协议和报文计算机网络是由一组通过通信信道相互连接的机器组成。我们把这些机器成为主机和路由器。1、主机是指运行应用程序的计算机,这些应用程序包括网络浏览器、即时通信代理或者文件共享程序。2、路由器是指将信息从一个通信信道传递或者转发到另一个通信信道。3、通信信道指将字节序列从一个主机传递到另一个主机的手段。4、信息是指计算机创建和解释的字节序列。协议是原创 2013-01-26 22:57:49 · 3948 阅读 · 0 评论 -
《Java TCP/IP Socket编程》读书笔记(2)
2.1 套接字地址1. 在Java中,地址可以是IP地址也可以是主机名。下面是一个Java中地址的例子package com.suifeng.tcpip.chapter2;import java.net.Inet4Address;import java.net.Inet6Address;import java.net.InetAddress;import java.net原创 2013-01-26 23:07:13 · 2150 阅读 · 1 评论 -
《Java TCP/IP Socket编程》读书笔记(3)
2.2 TCP套接字2.2.1 TCP客户端TCP客户端的步骤1.创建一个Socket实例:构造器向指定的远程主机和端口建立一个TCP连接。2. 通过套接字的输入输出流(I/O streams)进行通信:一个Socket连接实例包括一个InputStream和一个OutputStream,它们的用法同于其他Java输入输出流。3. 使用S原创 2013-01-26 23:16:26 · 4598 阅读 · 0 评论 -
《Java TCP/IP Socket编程》读书笔记(16)
第五章 NIO5.1我们为什么需要NIO多线程环境下对共享状态进行同步访问,增加了系统调度和切换上下文的开销,程序员对这些开销无法控制。阻塞等待。我们需要一种可以一次轮询一组客户端,以查找那个客户端需要服务。在NIO中,一个Channel代表一个可以轮询的I/O目标,Channel能够注册一个Selector实例。Selector的select可以查找“在当前一组信原创 2013-02-02 22:28:18 · 1928 阅读 · 1 评论