Netty学习之Socket的理解(一)
socket本质是网络编程的接口定义,在java中以对象的形式来描述这个接口,在linux中以文件的方式来描述这个接口。
java中定义了两个类来操作对应服务端和客户端的socket
ServerSocket和Socket,至于为什么要定义两个不同的类去实现,应该是java编程面向对象的封装思想吧,为了更清晰的分类不同功能的实现类,其实这两个类中都有描述具体实现是一个SocketImpl的抽象类提供的子类去实现的,具体还是通过调用操作系统提供的socket编程接口的方法去实现功能。
Socket是理解网络编程的基础,网络编程的三要素包括IP、端口号和协议
下面以unix操作系统为例介绍socket编程的具体内容
socket函数的基本形式为 int socket(int domain,int type,int protocol);
第一个参数domain表示该套接字的地址类型ipv4或ipv6或绝对路径等等
第二个参数表示该套接字对应协议的操作结构体,每种协议都有哪些操作
第三个参数表示具体的协议类型
参考https://blog.csdn.net/liuxingen/article/details/44995467