当前位置: 首页 > news >正文

深圳网站建设公司制作定制小型的企业网站

深圳网站建设公司制作定制,小型的企业网站,厦门手机网站建设公司排名,吉林市做网站的公司针对下文的总结#xff1a;socket是一种文件描述符 进程的打开文件描述符表 Linux的三个系统调用#xff1a;open#xff0c;socket#xff0c;pipe 返回的都是一个描述符。不同的进程中#xff0c;他们返回的描述符可以相同。那么#xff0c;在同一个进程中#xff0c;… 针对下文的总结socket是一种文件描述符 进程的打开文件描述符表 Linux的三个系统调用opensocketpipe 返回的都是一个描述符。不同的进程中他们返回的描述符可以相同。那么在同一个进程中他们可以相同吗或者说普通文件、套接字和管道这三者的描述符属于同一个集合吗 在内核源码中三个系统调用声明如下 SYSCALL_DEFINE3(open, const char __user *, filename, int, flags, umode_t, mode);  SYSCALL_DEFINE3(socket, int, family, int, type, int, protocol);  SYSCALL_DEFINE1(pipe, int __user *, fildes);   他们都会先后调用函数 get_unused_fd_flags获取当前进程打开文件描述符表中的空闲描述符fd_install安装新描述符到当前进程打开文件描述符表。内核为每个进程维护了一个结构体struct task_struct可称为进程表项、进程控制块PCB: Process Control Block或者进程描述符定义如下 struct task_struct {          volatile long state;  /* -1 unrunnable, 0 runnable,0 stopped */          …          pid_t pid;          …          struct files_struct *files;          …  };   其中files成员成为打开文件描述符表定义如下 struct files_struct {          …          struct fdtable fdtab;          …          struct file __rcu * fd_array[NR_OPEN_DEFAULT];  };   其成员fdtab为关键数据成员定义如下 struct fdtable {          unsigned int max_fds;          struct file __rcu **fd;      /* current fd array */          unsigned long *close_on_exec;          unsigned long *open_fds;          struct rcu_head rcu;  };   这说明普通的文件、套接字、管道等都被抽象为文件共同占用进程的打开文件描述符。     http://blog.csdn.net/aprilweet/article/details/53482930 另外一篇   /Proc 目录下面有许多数字命名的子目录这些数字表示系统当前运行的进程号其中/proc/N/fd目录下面保存了打开的文件描述符指向实际文件的一个链接。如下   rootyang-ubuntu:/proc/4810/fd# ll总用量 0 dr-x------ 2 root root 0 3月 8 16:07 ./dr-xr-xr-x 8 root root 0 3月 8 16:07 ../lrwx------ 1 root root 64 3月 8 16:08 0 - /dev/pts/1lrwx------ 1 root root 64 3月 8 16:08 1 - /dev/pts/1lrwx------ 1 root root 64 3月 8 16:09 10 - socket:[21190]lrwx------ 1 root root 64 3月 8 16:07 2 - /dev/pts/1lrwx------ 1 root root 64 3月 8 16:08 3 - /tmp/ZCUDY7QsPB (deleted)lrwx------ 1 root root 64 3月 8 16:08 4 - /tmp/sess_0fpvhvcpftcme834e1l4beo2i6lrwx------ 1 root root 64 3月 8 16:08 5 - socket:[20625]lrwx------ 1 root root 64 3月 8 16:08 6 - anon_inode:[eventpoll]lrwx------ 1 root root 64 3月 8 16:08 7 - socket:[20626]lrwx------ 1 root root 64 3月 8 16:08 8 - socket:[20627]lrwx------ 1 root root 64 3月 8 16:09 9 - socket:[21189]   我们想查看9 - Socket文件描述符的链接状态该怎么看呢聪明的注意到后面有个数字[21189]这个数字又是哪儿来的呢请往下看。   在/proc/net/tcp目录下面保存了所有TCP链接的状态信息。 rootyang-ubuntu:/proc/net# vim /proc/net/tcp sl local_address rem_address st tx_queue rx_queue tr tm-when retrnsmt uid timeout inode 0: 00000000:0CEA 00000000:0000 0A 00000000:00000000 00:00000000 00000000 1001 0 9482 1 ffff88001a501a00 100 0 0 10 -1 1: 00000000:008B 00000000:0000 0A 00000000:00000000 00:00000000 00000000 0 0 8916 1 ffff88001a501380 100 0 0 10 -1 2: 00000000:0050 00000000:0000 0A 00000000:00000000 00:00000000 00000000 0 0 11440 1 ffff88001a502080 100 0 0 10 -1 3: 0100007F:0035 00000000:0000 0A 00000000:00000000 00:00000000 00000000 0 0 12333 1 ffff88001a502700 100 0 0 10 -1 4: 00000000:0016 00000000:0000 0A 00000000:00000000 00:00000000 00000000 0 0 7922 1 ffff88001a500000 100 0 0 10 -1 5: 0100007F:0277 00000000:0000 0A 00000000:00000000 00:00000000 00000000 0 0 13302 1 ffff88001a500680 100 0 0 10 -1 6: 00000000:01BD 00000000:0000 0A 00000000:00000000 00:00000000 00000000 0 0 8914 1 ffff88001a500d00 100 0 0 10 -1 7: 00000000:0929 00000000:0000 0A 00000000:00000000 00:00000000 00000000 0 0 20625 1 ffff88001a504100 100 0 0 10 -1 8: 8064A8C0:01BD 0164A8C0:C26A 01 00000000:00000000 02:00030E57 00000000 0 0 13216 2 ffff88001a503a80 22 4 1 10 18 9: 8064A8C0:0929 0164A8C0:F4B5 01 00000000:00000000 02:00097B3E 00000000 0 0 21189 2 ffff88001a505b00 24 4 28 10 -1 10: 8064A8C0:0016 0164A8C0:CD9C 01 00000000:00000000 02:0000B4B4 00000000 0 0 17721 2 ffff88001a503400 22 4 20 10 -1 11: 8064A8C0:0016 0164A8C0:CDAE 01 00000000:00000000 02:0000DB1B 00000000 0 0 18130 2 ffff88001a504e00 24 4 31 10 -1 12: 8064A8C0:0929 0164A8C0:F4B6 01 00000000:00000000 02:00097B3E 00000000 0 0 21190 2 ffff88001a506800 24 4 24 10 -1 13: 8064A8C0:0016 0164A8C0:CDAC 01 00000000:00000000 02:0000DB1B 00000000 0 0 18074 2 ffff88001a502d80 21 4 24 10 -1 14: 8064A8C0:0016 0164A8C0:F3FC 01 00000000:00000000 02:00089B3B 00000000 0 0 20675 2 ffff88001a506180 24 4 25 10 -1 15: 8064A8C0:0016 0164A8C0:CDAD 01 00000080:00000000 01:00000018 00000000 0 0 18102 4 ffff88001a504780 24 4 21 10 -1   看上数字【21189 】没有就是这儿来的到此我们可以找出链接的IP、PORT链接四元组【8064A8C0:0929 0164A8C0:F4B5】这个地方是用十六进制保存的换算成十进制方式【192.168.100.128:2345            192.168.100.1:62645】 去网络连接状态里面看一下   rootyang-ubuntu:/proc/4275/fd# netstat -antp激活Internet连接 (服务器和已建立连接的)Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program nametcp 0 0 0.0.0.0:3306 0.0.0.0:* LISTEN 1710/mysqld tcp 0 0 0.0.0.0:139 0.0.0.0:* LISTEN 1062/smbd tcp 0 0 0.0.0.0:80 0.0.0.0:* LISTEN 1736/nginx.conf tcp 0 0 127.0.0.1:53 0.0.0.0:* LISTEN 1925/dnsmasq tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN 628/sshd tcp 0 0 127.0.0.1:631 0.0.0.0:* LISTEN 709/cupsd tcp 0 0 0.0.0.0:445 0.0.0.0:* LISTEN 1062/smbd tcp 0 0 0.0.0.0:2345 0.0.0.0:* LISTEN 4809/start.php tcp 0 0 192.168.100.128:445 192.168.100.1:49770 ESTABLISHED 2514/smbd tcp 0 0 192.168.100.128:2345 192.168.100.1:62645 ESTABLISHED 4810/0.0.0.0:2345tcp 0 0 192.168.100.128:22 192.168.100.1:52636 ESTABLISHED 3565/sshd: rootnottcp 0 0 192.168.100.128:22 192.168.100.1:52654 ESTABLISHED 3718/3 tcp 0 0 192.168.100.128:22 192.168.100.1:52652 ESTABLISHED 3714/1 tcp 0 0 192.168.100.128:22 192.168.100.1:62460 ESTABLISHED 4817/4 tcp 0 0 192.168.100.128:22 192.168.100.1:52653 ESTABLISHED 3716/2 tcp6 0 0 :::139 :::* LISTEN 1062/smbd tcp6 0 0 :::22 :::* LISTEN 628/sshd tcp6 0 0 ::1:631 :::* LISTEN 709/cupsd tcp6 0 0 :::445 :::* LISTEN 1062/smbd 回到开始的问题9 Socket文件描述符代表的是本地【192.168.100.128:2345】到【192.168.100.1:62645】的一条TCP连接   为什么往socket中写数据就会发送到对端(只针对tcp协议的研究)? 举例浏览器请求服务器 客户端首先发起建立与服务器TCP连接。一旦建立连接浏览器进程和服务器进程就可以通过各自的套接字来访问TCP。 客户端套接字是客户进程和TCP连接之间的“门”服务器端套接字是服务器进程和同一TCP连接之间的“门”。 客户往自己的套接字发送HTTP请求消息也从自己的套接字接收HTTP响应消息。 类似地服务器从自己的套接字接收HTTP请求消息也往自己的套接字发送HTTP响应消息。 客户端或服务器一旦把某个消息送入各自的套接字这个消息就完全落入TCP的控制之中。//所以说底层是基于tcp提供的可靠的消息传输机制 TCP给HTTP提供一个可靠的数据传输服务;这意味着由客户发出的每个HTTP请求消息最终将无损地到达服务器由服务器发出的每个HTTP响应消息最终也将无损地到达客户。   转载于:https://www.cnblogs.com/web21/p/6520164.html
http://www.pierceye.com/news/305951/

相关文章:

  • 有关应用网站申请免费网站空间
  • 二手书交易网站开发现状营销型网站建设推荐乐云seo
  • 山西网站建设怎么样seo优化网站多少钱
  • 网站建设设计模板磁力链最佳的搜索引擎
  • 单位外部网站建设价格哪些网站可以做视频直播
  • 广州黄埔网站建设公司国外做调灵风暴的网站
  • 珠海附近交友平台软件广州网站优化推广方案
  • cgi做网站如何将网站加入百度图 推广
  • 小贷做网站深圳手机app软件开发
  • 上海平台网站建设费用页面模板不存在怎么办
  • 西安网站排名公司上海工商网查询官网
  • 网站建设协调机制建网站 可以看到访客吗
  • 学生做网站的工作室南和住房和城乡建设局网站
  • 潍坊网站制作案例广东十大网站建设排名
  • 网站建设市场调研框架网站建设流程步骤怎么样
  • 喜茶品牌策划全案案例seo技术
  • 简速做网站中国企业网站建设案例
  • 做网站不给源码莱州网站建设包年多少钱
  • 好玩有趣的网站贵州省城乡建设厅网站材料价
  • 投资公司网站设计上海自动seo
  • 网络营销导向网站建设的基础是什么创新驱动发展战略的内容
  • 银狐鑫诺科技 网站建设深圳画册设计价格
  • 邵阳网站建设推广优化游戏性能的软件
  • wp做网站难吗销售产品单页面网站模板
  • 网站子域名 更换网站开发什么方式
  • 学做面食最好的网站设计公司logo大全
  • wordpress建站入门手机网站跳转怎么办
  • 好网站开发培训wordpress是否免费
  • 建设国际互联网网站网站建设制作流程
  • 开发一个网站做爬虫手机网站建设视频