Java tcp/ip socket 编程
2013-10-04 17:02
169 查看
Javatcp/ipsocket编程基本概念
拓展概念
多任务处理
关闭连接
常用API
接受数据实例DELIMITER=“\n”;inti=0;byte[]data=null;while((nextByte=in.read())!=DELIMITER){if(data==null){//in.available必须在in有数据的时候才能使用,已经读取的一个字节要加上data=newbyte[in.available+1];}data[i]=nextByte;i++;if(nextByte==-1){//数据已经读完break;}}
本文出自 “hiperfect” 博客,请务必保留此出处http://hiperfect.blog.51cto.com/2132079/1304597
套接字(socket) | 为实现程序间相互通信的编程应用接口(API),分为流套接字和数据报套接字 | |
tcp | 流套接字提供了一种可信赖的字节流服务 | 一个tcp/ip套接字由一个互联网地址,一个端到端协议和一个端口号确定 |
ip | 用互联网地址标识 | |
uri | 统一资源标识符,包括url | |
url | 统一资源定位符 | |
udp | 用户数据报协议 | 提供了一个尽力而为的数据报服务,可以发送最长为65500字节的信息 |
使接受者准确地找到消息的结束位置 | 方法1:基于定界符,消息的结束由一个唯一的标记指出,即消息的发出者在传输完整数据后显式添加一个特殊字节序列。这个特殊标记不能再传输数据中出现。(推荐使用单字节的特殊符号,例如:”\n”,这样可以直接在扫描读取信息的过程中进行判断) | 方法2:显式长度,在变长字段或消息前附加一个固定大小的字段,用来指示该字段或消息中包含了多少字节。 |
成帧与解析 | 成帧技术解决了接收端如何定位消息的首尾位置的问题。 | 解析就是找到消息。最简单的方法就是先定位消息的结束位置,然后将消息作为一个整体进行解析。 |
阻塞 | 监听过程会阻塞。执行读数据方法却没有数据时会发生阻塞。写数据时没有足够的空间缓存传输的数据时会出现阻塞。 | |
超时 | ||
保持活跃 | setKeepAlive(true)该机制在经过一段不活跃的时间后,将想另一个终端发出一个探测消息。如果另外一端还处于活跃状态就返回一个确认消息。如果经过几次尝试都没有收到确认消息,则终止发送探测消息,关闭套接字,并在下一次尝试io操作时抛出异常。 | |
发送和接受缓存区大小 | ||
地址重用 | ||
消除缓冲延迟 | ||
紧急数据 | 要发送紧急数据需要调用sendUrgentData()方法,它将发送其int参数的最低位字节。要接受这个字节,必须设置setOOBInline(true)启用接收者对频道外数据的接受。 | Java中紧急数据几乎没有什么用,因为紧急数据与常规字节按照传输顺序混在一起。实际上接收者并不能区分。 |
关闭后停留 | 如果关闭后缓冲区还有没有发出去的数据,可能主机在后面某一个时刻出现故障。 | 可以设置关闭后停留,setSoLinger(true),那么再调用close()方法将阻塞等待,直到远程终端对所有数据都返回了确认信息,或发生了指定的超时。 |
广播许可 | ||
通信等级 | ||
基于性能的协议选择 | Tcp不是套接字的唯一可选协议 | |
使用netstat命令监控tcp连接状态 | 详情看netstat-help | |
nio | 采用非阻塞方式 |
名称 | 方法 | 详细描述 |
一客户一线程 | 一个监听,每个socket一个线程 | |
线程池 | N个线程N个监听 |
关闭输入流或输出流 | 关闭输出流可以输出结束标志-1,但不可以继续输出数据。 | |
关闭socket | 关闭连接是协议中关键的一部分,一端调用close()发出关闭请求(close_wait),对方会读取到数据结束的-1标志,然后自动调用close()。 |
InetAddress | ||
ServerSocket | ||
Socket | ||
DatagramPacket |
本文出自 “hiperfect” 博客,请务必保留此出处http://hiperfect.blog.51cto.com/2132079/1304597
相关文章推荐
- 【Java TCP/IP Socket】Socket编程知识点总结
- 《Java TCP/IP Socket 编程 》读书笔记之十一:深入剖析socket——TCP套接字的生命周期
- 【Java TCP/IP Socket】Socket编程知识点总结
- [原]《Java TCP/IP Socket 编程 》读书笔记之十二:各章节要点
- 【Java TCP/IP Socket】Socket编程大合集
- [原]《Java TCP/IP Socket 编程 》读书笔记之十二:各章节要点
- java网络编程之TCP/IP ——SocketServer与Socket
- Java TCP/IP Socket 编程 笔记—TCP的例子
- Java 基于Tcp/ip连接的多人交互聊天室(Socket编程)
- 找呀志_java网络编程(4)TCP/IP、Http和Socket差额
- JAVA TCP/IP Socket 编程(一)
- Java TCP/IP Socket 编程 笔记
- [原]《Java TCP/IP Socket 编程 》读书笔记之十一:深入剖析socket——TCP套接字的生命周期
- 【Java TCP/IP Socket】Socket编程大合集
- 【Java TCP/IP Socket】Socket编程知识点总结
- [原]《Java TCP/IP Socket 编程 》读书笔记之十一:深入剖析socket——TCP套接字的生命周期
- Java TCPIP 编程 那些事 ServerSocket (一)
- Java网络编程(一) TCP/IP,http,socket,长连接,短连接
- 初识Java TCP/IP Socket-TCP网络编程知识
- 初识Java TCP/IP Socket-UDP网络编程知识