Erlang之一个简单的TCP服务器

本文介绍了如何使用Erlang编写一个简单的TCP服务器,包括顺序服务器和并行服务器的实现,并提供了客户端的交互示例,展示了Erlang在并发处理上的优势。
摘要由CSDN通过智能技术生成

简单TCP服务器代码:

-module(my_socket_server).
-export([start/0,loop/1]).
start() ->
	{ok, Listen} = gen_tcp:listen(2345, [binary, {packet, 4},%自定义打包规则,生成一个监听2345端口的socket
													{reuseaddr, true},
													{active, true}]),
	{ok, Socket} = gen_tcp:accept(Listen),%生存一个新的Socket
	gen_tcp:close(Listen),%把该监听关闭,不再生成新的socket
	loop(Socket).

loop(Socket) ->
	receive
		{tcp, Socket, Bin} ->
			io:format("Server received binary = ~p~n",[Bin]),
			Str = binary_to_term(Bin),%解码
			io:format("Server (unpacked) ~p~n",[Str]),
			Reply = lib_misc:string2value(Str),
			io:format('Server replying = ~p~n',[Reply]),
			gen_tcp:send(Socket, term_to_binary(Reply)),%编码
			loop(Socket);
		{tcp_closed, Socket} ->
			io:format("Server socket close~n")
	end.

顺序服务器:

-module(my_socket_server2).
-compile(export_all).
start() ->
	{ok, Liste
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值