摘要:int select( int nfds, fd_set FAR* readfds, fd_set * writefds, fd_set * exceptfds, const struct timeval * timeout); nfds:是一个整数值,是指集合中所有文件描述符的范围,即所有文件描述
阅读全文
摘要:一个简单的聊天代码:运行结果: 在这个程序之中,由于recvfrom函数拥塞函数,没有数据时会一直阻塞,所以客户端和服务器端只能通过一回一答的方式进行信息传递。严格的讲UDP没有明确的客户端和服务端,谁先进行数据传输,谁就是客户端,客户端也有可能是服务器端。 代码1: 代码2:
阅读全文
摘要:客户端的代码和前面的一样,所以这里只给出服务器端的代码,根据代码进行理解:
阅读全文
摘要:#include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #includ...
阅读全文
摘要:代码1:服务器端: 代码2:客户端(主要是创建连接、发送数据)
阅读全文
摘要:socket: 函数原型: int socket(int domain, int type, int protocol); 网络上的两个程序通过一个双向的通信连接实现数据的交换,这个连接的一端称为一个socket。 建立网络通信连接至少要一对端口号(socket)。socket本质是编程接口(API
阅读全文
摘要:管道: 运行结果: FIFO(有名管道): 代码1:写文件程序 代码2:读文件程序: 运行结果:右边输入,左边输出 另一种FIFO(边读边写) 代码1: 代码2: 输出结果:
阅读全文
摘要:程序接受到信号以后,会做出相应的处理。代码如下: 结果如下: 以上程序检测到段错误,自动传递了11(SIGSEGV)信号给进程(捕捉信号),而alarm(int)是把SIGALRM信号传递给当前的进程,在某些时候,我们需要手动的给某个程序传递一些自定义的信号,此时该怎么处理呢? 结果:先运行程序,循
阅读全文
摘要:当我们需要控制对共享资源的存取的时候,可以用一种简单的加锁的方法来控制。我们可以创建一个读/写程序,它们共用一个共享缓冲区,使用互斥锁来控制对缓冲区的存取。 函数 pthread_mutex_init()用来生成一个互斥锁。其函数原型如下: #include<pthread.h> int pthre
阅读全文
摘要:在编译多线程程序的时候,需要连接libpthread文件: gcc pthread.c -o pthread -lpthread; 所有线程一律平等,没有父子关系,线程属于进程。 创建线程用 pthread_create()函数,其函数原型是: #include<pthread.h> int pth
阅读全文
摘要:创建如图的进程: 结果如下: 创建如图的进程: 结果如下:
阅读全文
摘要:恢复内容开始 代码1:(带参main函数) 运行: 代码2:excel函数: 运行程序: 在这种情况之下,不能够输出后面的“excle over”内容,无法得知进程是否完成,可以改进一下程序,利用fork()创建子进程: 结果为:
阅读全文