Linux网络编程
banjitino
爱技术,爱生活。
展开
-
网络编程 协议和网络应用程序设计模式
协议和网络应用程序设计模式一、协议从应用的角度出发,协议可理解为“规则”,是数据传输和数据的解释的规则。假设,A、B双方欲传输文件。规定:第一次,传输文件名,接收方接收到文件名,应答OK给传输方;第二次,发送文件的尺寸,接收方接收到该数据再次应答一个OK;第三次,传输文件内容。同样,接收方接收数据完成后应答OK表示文件内容接收成功。由此,无论A、B之间传递何种文件,都是通过三次数据传...原创 2020-03-14 14:43:13 · 628 阅读 · 0 评论 -
多线程编程-多线程和多进程之间的区别
《Unix网络编程》原话翻译:1、进程是资源分配的最小单位,线程是程序执行的最小单位(资源调度的最小单位)2、进程有自己的独立地址空间,每启动一个进程,系统就会为它分配地址空间,建立数据表来维护代码段、堆栈段和数据段,这种操作非常昂贵。而线程是共享进程中的数据的,使用相同的地址空间,因此CPU切换一个线程的花费远比进程要小很多,同时创建一个线程的开销也比进程要小很多。3、线程之间的通信更方...翻译 2020-03-05 23:12:37 · 436 阅读 · 0 评论 -
网络编程-多路IO转接模型1-select模型
多路IO转接模型1-select模型在讲select模型之前,要先讲一讲端口复用。在server的TCP连接没完全断开(即connfd: 127.0.0.1:8000没完全断开)不允许重新监听(指的是监听listenfd: 0.0.0.0:8000)是不合理的。它们虽然端口相同,但是IP地址不同,listenfd对应的是wildcard address。解决这个问题的办法是调用setsocko...原创 2020-03-03 02:36:53 · 247 阅读 · 0 评论 -
网络编程-C实现多线程并发服务器server.c
本文仅将上文中server.c的多进程解决并发问题改为多线程解决并发,其余与上文相同serverc.c#include <stdio.h>#include <string.h>#include <arpa/inet.h>#include <pthread.h>#include <ctype.h>#include <un...原创 2020-03-03 01:27:09 · 607 阅读 · 0 评论 -
网络编程-C语言实现多进程并发服务器
在Linux操作系统下,服务器通过fork()复制已调用的进程来创建子进程,以此来实现多进程并发服务器C/S模型:server.c 7 步:socket();bind();listen();accept();read();write();close();client.c 7 步:socket();connect()fgets();write();写给服务器read()...原创 2020-03-03 01:07:56 · 2279 阅读 · 0 评论