UNIX网络编程
真的胜哥
这个作者很懒,什么都没留下…
展开
-
I/O复用
概述为什么需要I/O复用?知乎上的一个回答:举一个例子,模拟一个进程同时处理30个I/O:假设你是一个老师,让30个学生解答一道题目,然后检查学生做的是否正确,你有下面几个选择:1.按顺序逐个检查,先是A,然后B,然后C。。。这中间有一个学生卡住,全班都会被耽误;类比:在回射服务器版本1客户端中,客户端的工作流程是先从标准输入fgets上读取一行数据,紧接着write到服务端,再read服务端返回的数据,然后再fputs到标准输出,这样编程存在一个隐患:不能及时察觉到服务端的终止(服务端终止原创 2020-05-09 13:04:52 · 349 阅读 · 0 评论 -
socket连接建立与关闭
close函数定义close函数可以用于关闭套接字,并中只能TCP连接。#include<unistd.h>int close(int sockfd);close一个TCP套接字的默认行为是把该套接字标记为已关闭,然后立即返回到调用进程。该套接字不能再由调用进程使用,也就是说它不能再作为read或write等函数的第一个参数。套接字发送缓冲区的数据将尝试被发送到对端,发...原创 2020-05-07 12:45:24 · 1588 阅读 · 0 评论 -
UNIX网络编程——回射服务器
版本1服务端——多进程服务端父进程负责监听并接收客户连接请求;每当accept函数收到一个客户端连接请求,父进程就fork一个子进程来为该客户服务;子进程采用str_echo()(版本1)函数进行回射服务;服务端程序://tcpcliserv/tcpserv01.c#include "unp.h"intmain(int argc, char **argv){ int ...原创 2020-04-24 21:59:25 · 205 阅读 · 0 评论 -
UNIX网络编程源码运行
源码运行源码地址修改的地方有在/lib/unp.h添加了:#ifndef OPEN_MAX#define OPEN_MAX 1024#endif#ifndef AF_LINK#define AF_LINK 18#endif在/usr/include/net目录下添加了文件if_dl.h,if_dl.h内容为:if_dl.hreadme由于自己是...原创 2020-04-22 20:52:42 · 210 阅读 · 0 评论