上一页 1 ··· 70 71 72 73 74 75 76 77 78 ··· 121 下一页

2013年7月24日

UNIX网络编程——shutdown 与 close 函数 的区别

摘要: 假设server和client 已经建立了连接,server调用了close, 发送FIN 段给client(其实不一定会发送FIN段,后面再说),此时server不能再通过socket发送和接收数据,此时client调用read,如果接收到FIN 段会返回0,但client此时还是可以... 阅读全文

posted @ 2013-07-24 00:56 疯子123 阅读(130) 评论(0) 推荐(0) 编辑

2013年7月23日

UNIX网络编程——ICMP报文分析:端口不可达

摘要: ICMP的一个规则是,ICMP差错报文必须包括生成该差错报文的数据报IP首部(包含任何选项),还必须至少包括跟在该IP首部后面的前8个字节(包含源端口和目的端口)。在我们的例子中,跟在IP首部后面的前8个字节包含UDP的首部。 我们利用前面博客中UNIX网络编程学习(18)中UDP回... 阅读全文

posted @ 2013-07-23 19:53 疯子123 阅读(250) 评论(0) 推荐(0) 编辑

UNIX网络编程——僵尸进程

摘要: 在fork()/exec()过程中,假设子进程结束时父进程仍存在,而父进程fork()之前既没安装SIGCHLD信号处理函数调用waitpid()等待子进程结束,又没有显式忽略该信号,则子进程成为僵尸进程,无法正常结束,此时即使是root身份kill -9也不能杀死僵尸进程。补救办法是杀... 阅读全文

posted @ 2013-07-23 19:51 疯子123 阅读(113) 评论(0) 推荐(0) 编辑

UNIX网络编程——I/O复用:select和poll函数

摘要: 我们看到TCP客户同时处理两个输入:标准输入和TCP套接字。我们遇到的问题是就在客户阻塞于(标准输入上)fgets调用,服务器进程会被杀死。服务器TCP虽然正确的给客户TCP发送了一个FIN,但是既然客户进程正阻塞于从标准输入读入的过程,它将看不到这个EOF,直到从套接字读时为止(可能额... 阅读全文

posted @ 2013-07-23 18:59 疯子123 阅读(185) 评论(0) 推荐(0) 编辑

UNIX网络编程——TCP回射服务器/客户端程序

摘要: 下面通过最简单的客户端/服务器程序的实例来学习socket API。 serv.c 程序的功能是从客户端读取字符然后直接回射回去:#include#include#include#include#include#include#include#... 阅读全文

posted @ 2013-07-23 08:42 疯子123 阅读(288) 评论(0) 推荐(0) 编辑

2013年7月22日

UNIX网络编程——getsockname和getpeername函数

摘要: 这两个函数或者返回与某个套接字关联的本地协议地址(getsockname),或者返回与某个套接字关联的外地协议地址即得到对方的地址(getpeername)。#include int getsockname(int sockfd,struct sockaddr* localaddr,s... 阅读全文

posted @ 2013-07-22 23:56 疯子123 阅读(201) 评论(0) 推荐(0) 编辑

UNIX网络编程——并发服务器(TCP)

摘要: 在迭代服务器中,服务器只能处理一个客户端的请求,如何同时服务多个客户端呢?在未讲到select/poll/epoll等高级IO之前,比较老土的办法是使用fork来实现。 网络服务器通常用fork来同时服务多个客户端,父进程专门负责监听端口,每次accept一个新的客户端连接就fo... 阅读全文

posted @ 2013-07-22 19:35 疯子123 阅读(315) 评论(0) 推荐(0) 编辑

UNIX网络编程——基本TCP套接字编程

摘要: 一、基于TCP协议的网络程序下图是基于TCP协议的客户端/服务器程序的一般流程: 服务器调用socket()、bind()、listen()完成初始化后,调用accept()阻塞等待,处于... 阅读全文

posted @ 2013-07-22 14:19 疯子123 阅读(169) 评论(0) 推荐(0) 编辑

UNIX网络编程——socket概述和字节序、地址转换函数

摘要: 一、什么是socketsocket可以看成是用户进程与内核网络协议栈的编程接口。socket不仅可以用于本机的进程间通信,还可以用于网络上不同主机的进程间通信。socket API是一层抽象的网络编程接口,适用于各种底层网络协议,如IPv4、IPv6,以及以后要讲的UNIX Domain Sock... 阅读全文

posted @ 2013-07-22 13:29 疯子123 阅读(309) 评论(0) 推荐(0) 编辑

UNIX网络编程——TCP输出,UDP输出

摘要: TCP输出 每一个TCP套接字有一个发送缓冲区,我们可以使用SO_SNDBUF套接字选项来更改该缓冲区的大小。当某个应用进程调用write时,内核从该应用进程的缓冲区中复制所有数据到(或是应用程序的缓冲区大于套接字的发送缓冲区,或是套接字的发送缓冲区中已有其他数据),该应用进程将被投入睡眠... 阅读全文

posted @ 2013-07-22 12:30 疯子123 阅读(189) 评论(0) 推荐(0) 编辑

上一页 1 ··· 70 71 72 73 74 75 76 77 78 ··· 121 下一页

导航