建立TCP/IP连接的基本函数在SOCKET包中,调用函数时要在函数名前面加 socket : (冒号) 前缀
服务器端可使用的函数
(socket:socket-server 80) 建立监听程序,可以指定端口
(socket:socket-server-close ss) 关闭监听程序
(socket:socket-server-host ss) 返回Host属性
(socket:socket-server-port ss) 返回Port属性
(socket:socket-wait ss ...) 等待客户端建立连接
(socket:socket-accept ss ...) 等待客户端建立连接
(socket:socket-status ...) 返回连接状态
客户端可使用的函数
(socket:socket-connect port host ...) 请求建立连接
(socket:socket-status ...) 返回连接状态
可以用read、write、format操作建立起来的连接,就像读写普通文件一样
可以打开同时两个CList命令行程序,一个作为客户端,另一个作为服务端
在服务端执行
(setq ss (socket:socket-server 80))
(setq sc (socket:socket-accept ss))
在客户端执行
(setq cc (socket:socket-connect 80 "127.0.0.1"))
可以看到建立了连接
在客户端执行(write-line "test data" cc),在服务端执行(read-line sc),可以看到服
务端收到了字符串“test data”。这是一个双向连接,两端都可以做读写操作。
其中accept和connect函数可以通过设置:element-type '(unsigned-byte 8)变成二进制流
,和操作普通文件是一样的。
最后是关闭连接,像关闭文件一样用close函数
(close sc)