回上级页面

2025 年 04 月 14 日


原本我计划是在 60 岁,假如那时我还活着,智力还算正常,再学习 C 语言版本的网络套接字编程。我甚至计划着,到那个时候,我依然学不会。

今年过年那段时间,得了甲流,没能回老家,滞留淄博。无力出去挣钱,百无聊赖,又温习了一遍作为小众语言的 Awk。不怎么用 Windows 的人应该都知道,Awk 语言主要是用于写那种一两行的脚本程序,以杀人越货的姿态处理日常文本。可我这次无意中发现,作为 Awk 语言诸多实现中最为通用的版本 GNU Awk,居然有一份文档,名为「TCP/IP Internetworking with gawk」。

你敢相信么?Awk 语言能够编写网络程序,这种事几乎相当于有生之年我能学会套接字编程,或者几乎相当于你愿意借给我¥10 万元。

Awk 都有如此追求,我为何没有呢?于是,我学习了 Awk 的网络编程,甚至为它写了一份笔记 [1]。刚开始,我以为学会了 Awk 网络编程,从此以后再也不需要考虑学习网络编程的事。不过,我的乐观没能坚持太久,几天后我发现了,Awk 语言编写的网络服务端无法支持多个客户端的并发访问,充其量只能作为中小学生科普网络编程的教具。只是此时,Awk 用尽了它的花言巧语,已将我引诱到了迷雾重重的悬崖边上。我一脚踏空,跌了下去。

下坠者似流星划过空气。我竭力抓住了套接字地址,中止了坠落。然后攀崖而上,socket,connect,bind,listen,accept,recv,send,EAGAIN,OOP,fd_set,select,fork,wait,pthread,duff device,coroutine……或凸出,或凹陷,或荆棘,或灌木……我终于回到了崖顶。

现在,我计划在 60 岁的时候,能像很多人那样,好好度过一个春天。


[1] Awk 网络编程指南