Unix网络编程上卷--第5章
来源:互联网 发布:php array key 编辑:程序博客网 时间:2024/06/08 22:18
在三路握手中,客户接收到三路握手的第二个分节时,connect函数返回,而服务器要直到接收到三路握手的第三个分节accept函数才返回(即connect返回之后再过一半RTT返回)。
使用命令:
%:ps -A -o pid,ppid,tty,stat,args,wchan
查看进程的各个属性。
网络编程中可能会遇到的问题:
1,用fork子进程时,必须捕获SIGCHLD信号。(否则可能会出现大连僵尸(zombie)进程,影响系统工作)
2,捕获信号时,有可能会中断某些系统调用。
3,SIGCHLD的额信号处理函数必须正确编写,应使用waitpid函数以免留下僵尸进程。
服务器进程终止:
客户发送数据到服务器(注意,此处是服务器,TCPf服务器,而不是服务器进程)时,之前连接的套接口的进程(服务器进程)已经终止,则服务器响应一个RST。
服务器主机崩溃:
客户发送数据不能到达服务器,则TCP会一直向服务器重传,或者中间某个路由器通过ICMP告诉客户机“主机不可达”(EHOSTUNREACH).
服务器主机崩溃后重启:
服务器主机崩溃后重启,则会失去所有之前的TCP连接信息。当客户的TCP数据到达服务器时,服务器回复一个RST。
Unix系统关机时,init进程通常先给所有进程发送SIGTERM信号(该信号可以被捕获),再等一段固定的时间(往往是5~20秒),然后给所有仍在运行的进程发送SIGKILL信号(该信号不能被捕获)。所以,想要在关机之前做一些事情(比如保存数据)的进程要捕获SIGTERM,并作出相应处理。
在网络中传送数据时,可能因为网络字节序跟主机字节序的不同而造成数据传输出错。需要注意。
- Unix网络编程上卷--第5章
- Unix网络编程上卷--第二章
- Unix网络编程上卷读书笔记--源代码的使用和第一章
- unix网络编程第1章:简介
- unix网络编程-第3,4章套接字编程
- unix网络编程-第3,4章套接字编程
- Unix网络编程代码 第1章 简介
- Unix网络编程代码 第7章 套接字选项
- Unix网络编程代码 第17章 ioctl操作
- Unix网络编程代码 第20章 广播
- Unix网络编程代码 第28章 原始套接字
- Unix网络编程学习笔记之第1章 简介
- 【UNIX网络编程】第26章 线程总结
- UNIX网络编程-第2章-2.1-2.10
- Unix网络编程代码 第5章 TCP客户/服务器程序示例
- Unix网络编程学习笔记之第5章 TCP客户端/服务器程序示例
- UNIX网络编程卷1:套接字联网-第5章:TCP客户/服务器程序示例
- Unix网络编程 5、6章笔记
- CXF 服务调用之java客户端代码
- 关于phonegap 开发iOS 程序时 的ERROR whitelist rejection【不能请求服务端】
- Spring MVC 入门
- SQL Server 改名 和 Replication, Distributor
- Android menu.add()的使用说明
- Unix网络编程上卷--第5章
- JAVA 反射学习总结
- VC++6.0、VS2003、vs2005、vs2008程序依赖DLL
- struts2中用ajax问题
- Oracle中没有 if exists(...)
- 交通灯管理系统
- What do 'statically linked' and 'dynamically linked' mean?
- static关键字
- ubuntu10.10安装rpm包遇到的一点问题及解决办法