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

 

Netty学习之Socket的理解(一)