关于erlang的套接字编程

套接字编程即熟悉的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:套接字已发送的或接收的字节数

 

 

posted @ 2013-05-15 17:22  孤独信徒  阅读(684)  评论(0编辑  收藏  举报