作者回复: 看样子你都尝试了,实践出真知,赞
作者回复: 答疑篇统一回复
作者回复: 本地套接字datagram就可以
作者回复: 这个值是为了回包的需要,常规情况是不需要的,但是在某些情况下还是有点作用的,比如让客户端快速出错。
作者回复: 👍
作者回复: 1.没什么内容,只是一个占位符,告诉客户端要连哪个sock;
2.没有仔细研读过kernel的代码,不过我猜是大量复用了TCP/IP层的公共实现;
3.因为文件已经告诉我们连接的目标了,所以不需要端口。
作者回复: 1.加一个SIGPIPE信号处理
2.读到EOF就不要write了
作者回复: 你可以在linux系统里执行man命令,例如man socket:
SOCKET(2) Linux Programmer's Manual SOCKET(2)
NAME
socket - create an endpoint for communication
SYNOPSIS
#include <sys/types.h> /* See NOTES */
#include <sys/socket.h>
int socket(int domain, int type, int protocol);
作者回复: 我是这么理解的,本地套接字本质还是进程间通信,只是借助了套接字的编程语义,比如stream和datagram,最下面肯定不走IP协议的。
作者回复: 头像好赞。
作者回复: 不会啊,会不会是权限的问题?你是root账号么?
作者回复: 没有这么说,目录-文件这个和并发有关系么?
作者回复: https://github.com/froghui/yolanda/blob/master/lib/common.h
作者回复: C语言可以接收这样不带花括号的简单写法。
作者回复: 我理解是编程模型的差别
作者回复: 可以的,通过指针位置来计算offset,再补上协议本身的大小。