linux网络编程

来源:互联网 发布:云软件 编辑:程序博客网 时间:2024/05/20 21:57

1.IP协议簇
通常使用的是IPV4和IPV6,但是网络中还存在别的协议簇
unix域协议,路由套接字密匙套接字。
2.bind函数,就是绑定也就是说服务器端将端口和地址绑定到套接字上,事实上所谓的套接字编程就是说将将所有应用层一下的所需要的参数绑定到套接字上,然后我们操作的函数都是这个套接字
3.listen函数;监听
4.accept这个等待连接,也就是说等待客户端进行connet,一旦有客户端连接就进入三次握手阶段。

2.并发服务器
并发服务器的概念很简单,就是说我们创建一个服务器,并不是只给一个客户端使用的,会有很多客户端进行连接,然后获取服务器的数据的,最简单的办法就是使用fork传进一个子进程,子进程的责任就是负责收发,使用fork创建的子进程是父进程的一个副本,会享受创建之前父进程定义的所有变量。

#include <unistd.h>  #include <stdio.h>   int main ()   {       pid_t fpid; //fpid表示fork函数返回的值      int count=0;      fpid=fork();       if (fpid < 0)           printf("error in fork!");       else if (fpid == 0) {          printf("i am the child process, my process id is %d/n",getpid());           printf("我是爹的儿子/n");//对某些人来说中文看着更直白。          count++;      }      else {          printf("i am the parent process, my process id is %d/n",getpid());           printf("我是孩子他爹/n");          count++;      }      printf("统计结果是: %d/n",count);      return 0;  }

使用getsockname和geteername获取地址个地址长度