网络编程中的套接字与协议解析
1. 并行服务器与控制问题
在网络编程里,为每个新的套接字连接创建并行进程是常见操作。顺序服务器和并行服务器都会调用 gen_tcp:listen 和 gen_tcp:accept ,区别在于调用这些函数的程序是并行还是顺序的。
1.1 套接字控制要点
- 控制进程 :通过调用
gen_tcp:accept或gen_tcp:connect创建套接字的进程就是该套接字的控制进程。所有来自套接字的消息都会发送给控制进程,若控制进程死亡,套接字会自动关闭。可通过gen_tcp:controlling_process(Socket, NewPid)更改套接字的控制进程。 - 连接数量限制 :并行服务器可能会创建大量连接,可通过维护一个计数器来限制同时连接的最大数量。每次建立新连接时增加计数器,连接结束时减少计数器。
- 设置套接字选项 :接受连接后,最好显式设置所需的套接字选项,示例代码如下:
{ok, Socket} = gen_tcp:accept(Listen),
inet:setopts(Socket, [{packet,4},binary,
{nodelay,true},{active, true}]),
loop(Socket)
超级会员免费看
订阅专栏 解锁全文
172万+

被折叠的 条评论
为什么被折叠?



