zoukankan      html  css  js  c++  java
  • 网络编程时需要注意的情况

      在TCP客户和服务器彼此可以通信之前,每一端都应指定连接的套接字对;本地IP地址、本地端口号、外地IP地址、外地端口号。如下图:

    外地IP地址和外地端口号必须在客户调用connect时指定。而两个本地值通常都由内核作为connect的一部分来选定。客户也可以在connect之前,通过调用bind来指定其中的一个或全部数值。但做饭并不常见。客户可以在连接建立后调用getsockname获取由内核指定的两个本地值。

      本地端口(服务器众所周知端口)由bind指定。bind调用中服务器指定的本地IP地址通常是通配IP地址。如果服务器在一个多宿主机上绑定通配IP地址,那么它可以在连接建立后通过调用getsockname来确定本地IP地址。两个外地值则有accept调用返回给服务器。如果另外一个程序由调用accept的服务器通过调用exec来执行,那么这个新程序可以在必要时调用getpeername来确定客户端的IP地址和端口号。

    网络编程时,需要注意的三种情况:
    1、当调用fork产生子进程时,必须捕捉SIGCHLD信号。
    2、当捕捉信号时,必须处理被中断的系统调用。例如调用accept时,判断在返回值为-1并且errno被设置为EINTR的情况下,要重新启用accept。
    3、SIGCHLD的信号处理函数必须正确编写,使用waitpid函数避免留下僵尸进程。

  • 相关阅读:
    WM有约(二):配置信息
    ASP+Wrod、excel打印程序示例
    用stream直接下载文件
    ASP判断gif图像尺寸的方法
    白菜世纪RSS无刷新聚合器(1221修正)
    ASP.NET常用代码
    图片超过规定的大小就按原图片大小缩小
    javascript弹出窗口总结
    asp excel sql 关系大总结
    打开窗口
  • 原文地址:https://www.cnblogs.com/rabbit0212/p/11162800.html
Copyright © 2011-2022 走看看