Java网络编程中对Socket的理解
来源:互联网 发布:windows insider iso 编辑:程序博客网 时间:2024/04/29 17:39
关于网络编程中的Socket和ServerSocket的关系,以及对Scoket中流的操作,一直不太明白,直到看第二遍书和视屏的时候,
豁然开朗,这里作个总结,也是对学习的回顾。
我们在理解TCP通信的时候,就必须用到ServerSocket,因为只有TCP才分ServerSocket,而UDP是不分的。下面上图看的更清楚
在这个图里,我们看不到ServerSocket,为什么呢?因为ServerScoket只是起一个监听的作用,而且这个监听是阻塞式的,
ServerSocket ss = new ServerSocket(30000);这行命令的作用是:在30000端口启用一个TCP连接的监听,等待Socket的连接
如果没有客户端的Socket发出请求,那么就会一直等待下去;而对于客户端必须产生一个Socket请求,Socket s = new Socket("127.0.0.1" , 30000);
这行命令一旦执行,就会向指定IP的服务端的指定端口发出TCP请求,这个时候服务端接收到请求,同时生成一个Socket实例,Socket s = ss.accept();
这个时候两端都有了一个Socket实例,那么这个TCP的虚拟链路就建立起来了,而ServerSocket就完成了它的任务,没有任何的作用了(这是只讨论一次连接的情况),
所有网络编程的底层是通过Socket来实现的,简单来说就是,监听——请求——建立连接。
而对于Socket中流的操作,则可以更简单,就将整个Socket连接视为一个资源就可以了,从这里我们看出Java在设计处理流的好处了,无论我们的节点流是什么样的实现是文件流也好,是Socket流也好,无需关心底层实现,还是像普通IO操作一样,取得输入流,取得输出流,跟操作文件流没什么两样。
- Java网络编程中对Socket的理解
- 网络编程之 我对windows socket的理解
- 有关socket网络编程中一些概念的理解
- 对使用Java Socket网络编程的详细讲解
- java中Socket网络编程
- 网络编程中对进程的理解(Linux + GCC)
- 对TCP/socket编程的个人理解
- Java网络编程中socket编程
- java 的socket网络编程
- java的socket网络编程
- 网络编程socket accept函数的理解
- java网络编程Socket中SO_LINGER选项的用法解读
- java网络编程Socket中SO_LINGER选项的用法解读
- java网络编程Socket中SO_LINGER选项的用法解读
- java网络编程中Socket什么意思?怎么工作的?
- Java的网络编程-Socket编程
- Java网络编程:TCP的socket编程
- java中socket网络编程总结
- C语言各章节的难易程度
- elasicsearch suggest用法
- centos下源码安装LVS+ Keepalived
- 插入排序和希尔排序
- Cocos2d-x学习笔记(十)—— 音频系统(SimpleAudioEngine)
- Java网络编程中对Socket的理解
- Winform Settings配置文件的保存
- 【COCI 2011】送票
- 枚举方法在swtch中的用法
- 索引之散列方法
- 修订的GRE分类词汇(截屏版)
- python pandas 如何对一列做四舍五入的操作
- 【华为机试题】黑白棋子的最大匹配度
- 我与互联网