套接字编程即熟悉的Socket编程,根据传输层协议,可分为:UDP协议和TCP协议.下面写一个简单的例子,再重新认识下它:
1.在同一主机节点下启动两个Erlang节点.
a).在第一个Erlang节点下,打开端口为1234的UDP套接字;
b).在第二个Erlang节点下,打开端口为1235的UDP套接字.
2.使用第二个节点套接字发送二进制《"Hello"》或者 字符串 "Hello"到在本地主机ip地址127.0.0.1的端口1234上监听的套接字.
3.在第一个节点下,使用flush()可以刷新邮箱并读取.
4.分别关闭这两个套接字,从而释放占用的端口.
测试用例如下:
备注:这里是在同一个主机下建立两个不同的节点通过gen——udp模块发送消息,分别发送了二进制<<"Hello">>和列表''Hello"两种形式进行发送的,但二进制形式同样以列表形式进行发送.
这里也可以和不同的主机进行消息间的发送,即把本地ip(127.0.0.1)改成目标主机的ip即可.但需要注意的是:没有防火墙阻止相关端口,以及相关端口没有被占用.
(上述测试用例是基于UDP协议,用的是gen_udp模块) 步骤:首先,打开端口;其次,通过Socket发送(send)消息,消息的格式是以列表形式发送;最后,释放占用的端口.
常看常新,看到了inet模块,下面来认识下这个函数吧:
inet:getstat /1
avg: 该数据包的平均大小
cnt:已发送或者接收的数据包数量
dvi:套接字已经发送或者接收字节的数据包大小的偏差
max:最大数据包的大小
oct:套接字已发送的或接收的字节数