摘要:
一、 进程基本知识1.1 进程概念进程是程序执行和资源管理的最小单位,是程序动态执行的过程。Linux下是通过进程控制块(PCB)来描述一个进程的,进程控制块包含了进程的描述信息、控制信息以及资源信息,它是进程的一个静态描述。在Linux中进程控制块中的每一项都是一个task_struct结构,是在include/linux/sched.h中定义的。1.2 进程标识在Linux中进程的主要标识有进程标识号(PID)以及父进程标识号(PPID)。PID唯一的标识一个进程。PPID、PID都是一个非零的正整数。获得当前进程的PID和PPID的系统调用分别为 1: #include <sys/ 阅读全文
摘要:
一、 Socket的基本知识1. socket历史与功能在80年代早期,加利福尼亚大学伯克利分校的一个研究组,将TCP/IP软件一直到UNIX操作系统上。作为实现该项目的一部分,他们设计了一种接口,应用程序可以通过这个接口方便的进行通信。这样做的结果是出现了插件接口(Barkeley Socket)。 图1. Socket层次 Socket实质上提供了进程通信的端点,进程通信之前,双方必须首先各自创建一个端点,否则是没有办法建立联系并相互通信的。 每一个Socket都一个半相关描述: {协议, 本地地址, 本地端口} 完整的Socket的描述: {协议, 本地地址, 本地端口, 远程地址, 远 阅读全文
摘要:
1.建立套接字Linux在利用socket()系统调用建立新的套接字时,需要传递套接字的地址族标识符、套接字类型以及协议,其函数定义于net/socket.c中: asmlinkage long sys_socket(int family, int type, int protocol) { int retval; struct socket *sock; retval = sock_create(family, type, protocol, &sock); if (retval < 0) goto out; retval = sock_map_fd(sock); if (re 阅读全文
摘要:
Q:什么是套接字(Socket)?套接字(Socket)是什么意思?应用层通过传输层进行数据通信时,TCP和UDP会遇到同时为多个应用程序进程提供并发服务的问题。多个TCP连接或多个应用程序进程可能需要通过同一个TCP协议端口传输数据。为了区别不同的应用程序进程和连接,许多计算机操作系统为应用程序与TCP/IP协议交互提供了称为套接字(Socket)的接口,区分不同应用程序进程间的网络通信和连接。网络化的应用程序在开始任何通讯之前都必需要创建套接字。就像电话的插口一样,没有它就完全没办法通信。生成套接字,主要有3个参数:通信的目的IP地址、使用的传输层协议(TCP或UDP)和使用的端口号。So 阅读全文