Linux网络编程笔记
2015-12-20 19:43
609 查看
服务器和客户端应用程序判断对方是否已经关闭连接的方法:
1)read系统调用返回0(收到结束报文段)
2)当管道读端关闭时,写端文件描述符上的POLLHUP事件被触发;
当socket连接被对方关闭时,socket上的POLLRDHUP事件被触发。
IP地址转换函数:
inet_pton将用字符串表示的IP地址src转换成用网络字节序整数表示的IP地址。inet_ntop进行相反的转换
3.带RST标志的报文段为复位报文段,通知对方关闭连接或重新建立连接。产生复位报文段的3种情况:
1) 当客户端访问一个不存在的端口时,目标主机将给它发送一个复位报文段。
2) 客户端向服务器处于TIME_WAIT状态的端口发起连接时,也将收到复位报文段。
3) 希望异常终止一个连接时,向对方发送一个复位报文段,使用socket选项SO_LINGER来发送复位报文段。
4) 一端关闭或异常终止了连接,而对方没有接收到结束报文段(FIN)还维持着原来的连接,这种状态称为半打开状态。向处于半打开状态的连接写入数据,对方将回复一个复位报文段。
1)read系统调用返回0(收到结束报文段)
2)当管道读端关闭时,写端文件描述符上的POLLHUP事件被触发;
当socket连接被对方关闭时,socket上的POLLRDHUP事件被触发。
IP地址转换函数:
#include <arpa/inet.h> int inet_pton(int af, const char* src, void* dst); const char* inet_ntop(int af, const void* src, char* dst, socklen_t cnt);
inet_pton将用字符串表示的IP地址src转换成用网络字节序整数表示的IP地址。inet_ntop进行相反的转换
3.带RST标志的报文段为复位报文段,通知对方关闭连接或重新建立连接。产生复位报文段的3种情况:
1) 当客户端访问一个不存在的端口时,目标主机将给它发送一个复位报文段。
2) 客户端向服务器处于TIME_WAIT状态的端口发起连接时,也将收到复位报文段。
3) 希望异常终止一个连接时,向对方发送一个复位报文段,使用socket选项SO_LINGER来发送复位报文段。
4) 一端关闭或异常终止了连接,而对方没有接收到结束报文段(FIN)还维持着原来的连接,这种状态称为半打开状态。向处于半打开状态的连接写入数据,对方将回复一个复位报文段。
相关文章推荐
- android网络编程之HttpUrlConnection的讲解--实现文件断点下载
- 第3章 TCP/IP Socket网络通讯------第4章 实现Socket C/S应用程序
- 记一次大量 TCP 连接失败
- 神经网络入门(二)为什么我的算法跑得这么慢?
- http://www.phplo.com/special/2013/0616/467.html
- 利用CocoaHTTPServer实现wifi局域网传输文件到iphone
- 利用CocoaHTTPServer实现wifi局域网传输文件到iphone
- 网络协议都有哪些
- 一种可能的新的人脑信息网络模型
- Unity如何判断网络连接类型
- HTTP协议之:报文详解
- IOS网络开发NSURLSession详解(一)概述
- acl3.1.4 跨平台网络通信与服务器编程框架发布了
- 对OkHttp进行封装,实现了只查询缓存,网络请求失败自动查询本地缓存等功能
- 自己动手写神经网络,自己真的能够动手写神经网络嘛?
- 奇虎360退出美国股市 12月再曝拟私有化
- PHP的异步并行网络扩展swoole如何使用
- ubuntu开机遇到-您的当前网络有.local域,我们不建议这样做而且这与AVAHI网络服务探测不兼容。该服务已被禁用
- MacOS 上网络故障诊断
- TCP端口介绍