java网络部分,主要从下面几个地方说明:
socket 知识
在 TCP/IP 协议族中,socket 扮演的角色,就是在传输层与因此中之间,如下图所示:
另外一张图,TCP/IP协议每层的协议:
由上面两张图可以知道,在使用Socket编写网络程序的时候,不需要关心传输层和网络层的协议细节(即,给报文添加TCP/UDP头,和IP头)。
注意,上面说的 Socket 指的是 Socket 编程,Socket 编程在具体的编程语言中变现的形式有的差异,比如,在C语言中的函数原型:int socket(int domain, int type, int protocol);。 而在JAVA中,socket对象是基于TCP的。见百科:socket
-------------------------------------------------------------------------------------------------------
下面用例子说明,参见:Android网络编程之--Socket编程,这个例子中使用了,Android客户端向pc服务端使用Socket通信,在PC上抓包,通过抓包可以看见每个TCP之上就是我们发生的内容了,如下:
Android客户端发生的是“123456789”。
----------------------------------------------------------------------------------------------------
java中还有其他几个重要的类:
DatagramSocket(UDP)、ServerSocket、 SocketAddress、 InetSocketAddress、 DatagramPacket(UDP)
见:Android 基于TCP的 Socket 编程实现(结合 okio)
---------------------------------------------------------------------------------------------------