- 博客(5)
- 收藏
- 关注
原创 Linux下TCP/IP网络编程示例——实现服务器/客户端通信(五)
Linux下TCP/IP网络编程示例——实现服务器/客户端通信(五):基于socket实现基本的服务器与客户端通信,使用多路复用(poll)实现服务端的多并发功能。poll()和select()没有本质的区别,都是内核去轮询监控所有文件描述符,只不过select()有最大监控数量限制,poll()没有最大监控数量限制。客户端代码同(一)中的一样:服务端 server.c#include <stdio.h>#include <string.h>#include &
2020-06-19 13:44:24 575
原创 Linux下TCP/IP网络编程示例——实现服务器/客户端通信(四)
Linux下TCP/IP网络编程示例——实现服务器/客户端通信(四):基于socket实现基本的服务器与客户端通信,使用多路复用(select)实现服务端的多并发功能。客户端代码同之前一样。服务端 server.c#include <stdio.h>#include <string.h>#include <unistd.h>#include <stdlib.h>#include <errno.h>#include <s
2020-06-18 14:50:36 673
原创 Linux下TCP/IP网络编程示例——实现服务器/客户端通信(三)
Linux下TCP/IP网络编程示例——实现服务器/客户端通信(三):基于socket实现基本的服务器与客户端通信,使用多线程实现服务端的多并发功能。例程中使用多线程来实现多并发,每新来一个客户端连接请求,就新开一个线程去与该客户端进行通信。当对应客户端退出时,服务器结束对应的线程,为了及时回收结束线程的资源,在每次创建线程前,都先设置线程的分离属性,使得线程结束后,由系统自动回收线程资源。server.c#include <stdio.h>#include <string
2020-06-17 16:53:16 917
原创 Linux下TCP/IP网络编程示例——实现服务器/客户端通信(二)
在《Linux下TCP/IP网络编程示例——实现服务器/客户端通信(一)》中,实现了基本的服务器/客户端通信,但是不支持多并发,下面在(一)的基础上实现服务器支持多并发,可以多个客户端同时连接并通信。在上一篇中,说到socket()创建的套接字默认是阻塞的,所以accept()会一直阻塞等待客户端的连接请求;同时read也会阻塞等待读取数据。下面的例程中,会将套接字设为非阻塞模式,这样accept()和read()就不会阻塞等待,而是会在没有客户端连接请求以及没有数据可读时立即返回,并设置响应的错误码。
2020-06-16 17:11:37 783
原创 Linux下TCP/IP网络编程示例——实现服务器/客户端通信(一)
一、说明最近梳理网络编程的一些知识点时,整理了一些笔记,写了一些demo例程,主要包含下面几部分,后面会陆续完成。1、Linux下TCP/IP网络编程示例——实现服务器/客户端通信(一):基于socket实现基本的服务器与客户端通信,不支持多并发,即只支持与一个客户端通信。2、Linux下TCP/IP网络编程示例——实现服务器/客户端通信(二):基于socket实现基本的服务器与客户端通信,不使用多进程/多线程和多路复用,实现服务端多并发功能。3、Linux下TCP/IP网络编程示例——实现服务
2020-06-16 16:33:03 11175 1
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人