回送地址的分析
答案:1 悬赏:70 手机版
解决时间 2021-03-13 20:46
- 提问者网友:孤山下
- 2021-03-13 00:46
回送地址的分析
最佳答案
- 五星知识达人网友:动情书生
- 2021-03-13 01:53
● 第36行,程序调用socket( )函数分配套接字标识符,将AF_INET作为域参数传递,表示该套接字使用IP协议;将SOCK_STREAM作为类参数传递,表示该套接字在传输层使用TCP协议进行通信;将0传递给作为协议参数传递,因为在分配TCP套接字的时候,通常不会用到这个参数。
● 第43行,初始化sockaddr_in结构,用来定义套接字将要绑定的本地端点。
● 第45行,本地端点的family域被指定为AF_INET,与第36行传给socket( )函数的参数一致。
● 第46行,指定将要绑定的本地端口,端口号由命令行参数给出并作为字符数组(char *)传递进来。端口号通过atoi( )函数被转换成4字节的整型数,然后再转换为网络字节顺序的2字节短整型数,最后赋值给sockaddr_in结构的sin_port成员。
● 第47行,指定要绑定的本地IP地址。这里用到了无符号整型常量INADDR_ANY,这个值表示套接字将会绑定到所有可用的网络接口,包括回送接口(loopback interface)。与INADDR_ANY相反,在主机有多个网络接口的情况下,如果用指定网络接口的IP地址代替INADDR_ANY,则可以将套接字绑定到其中的一个接口。
● 第49行,调用bind( )函数指定本地端点的信息,包括本地IP地址、端口以及套接字描述符。
● 第58行,调用listen( )函数,指定在拒绝新连接以前,可排除等待的TCP客户端连接请求的数目,并且指定套接字已经就绪,可以接收客户端的连接。程序从这里开始处理客户端的连接。
● 第70行,调用accept( )函数接收TCP客户端的连接请求,accept( )函数被调用时,将会等待(阻塞)客户端的连接。当收到一个新的TCP客户端请求以后,accept( )函数将返回一个套接字描述符来代表这个新的连接。
● 第79行,关闭由accept( )函数返回的合法套接字描述符。
● 第82行,关闭服务器端套接字,不再允许客户端的连接。
下面,我们首先执行程序server1,接着再执行程序client1。server1将分配一个套接字描述符,并绑定到命令行指定的端口,然后监听来自客户端的TCP连接。当执行client1时,将会在server1和client1两个程序之间建立一个TCP连接。最后,两个程序都将关闭连接并终止。
● 第43行,初始化sockaddr_in结构,用来定义套接字将要绑定的本地端点。
● 第45行,本地端点的family域被指定为AF_INET,与第36行传给socket( )函数的参数一致。
● 第46行,指定将要绑定的本地端口,端口号由命令行参数给出并作为字符数组(char *)传递进来。端口号通过atoi( )函数被转换成4字节的整型数,然后再转换为网络字节顺序的2字节短整型数,最后赋值给sockaddr_in结构的sin_port成员。
● 第47行,指定要绑定的本地IP地址。这里用到了无符号整型常量INADDR_ANY,这个值表示套接字将会绑定到所有可用的网络接口,包括回送接口(loopback interface)。与INADDR_ANY相反,在主机有多个网络接口的情况下,如果用指定网络接口的IP地址代替INADDR_ANY,则可以将套接字绑定到其中的一个接口。
● 第49行,调用bind( )函数指定本地端点的信息,包括本地IP地址、端口以及套接字描述符。
● 第58行,调用listen( )函数,指定在拒绝新连接以前,可排除等待的TCP客户端连接请求的数目,并且指定套接字已经就绪,可以接收客户端的连接。程序从这里开始处理客户端的连接。
● 第70行,调用accept( )函数接收TCP客户端的连接请求,accept( )函数被调用时,将会等待(阻塞)客户端的连接。当收到一个新的TCP客户端请求以后,accept( )函数将返回一个套接字描述符来代表这个新的连接。
● 第79行,关闭由accept( )函数返回的合法套接字描述符。
● 第82行,关闭服务器端套接字,不再允许客户端的连接。
下面,我们首先执行程序server1,接着再执行程序client1。server1将分配一个套接字描述符,并绑定到命令行指定的端口,然后监听来自客户端的TCP连接。当执行client1时,将会在server1和client1两个程序之间建立一个TCP连接。最后,两个程序都将关闭连接并终止。
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯