Guest User

Untitled

a guest
Jul 18th, 2018
74
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 0.98 KB | None | 0 0
  1. -module(unix_dgram).
  2. -export([client/1, server/0]).
  3.  
  4. -define(PF_LOCAL, 1).
  5. -define(SOCK_DGRAM, 2).
  6. -define(UNIX_PATH_MAX, 108).
  7.  
  8. -define(PATH, <<"/tmp/unix_dgram.sock">>).
  9.  
  10. server() ->
  11. {ok, Socket} = procket:socket(?PF_LOCAL, ?SOCK_DGRAM, 0),
  12.  
  13. Sun = <<?PF_LOCAL:16/native, % sun_family
  14. ?PATH/binary, % address
  15. 0:((?UNIX_PATH_MAX-byte_size(?PATH))*8)
  16. >>,
  17. ok = procket:bind(Socket, Sun),
  18. echo(Socket).
  19.  
  20. echo(Socket) ->
  21. case procket:recvfrom(Socket, 16#FFFF) of
  22. {error, eagain} ->
  23. timer:sleep(10),
  24. echo(Socket);
  25. {ok, Buf} ->
  26. io:format("~p~n", [Buf]),
  27. echo(Socket)
  28. end.
  29.  
  30.  
  31. client(Buf) when is_binary(Buf) ->
  32. {ok, Socket} = procket:socket(?PF_LOCAL, ?SOCK_DGRAM, 0),
  33.  
  34. Sun = <<?PF_LOCAL:16/native, % sun_family
  35. ?PATH/binary, % address
  36. 0:((?UNIX_PATH_MAX-byte_size(?PATH))*8)
  37. >>,
  38.  
  39. procket:sendto(Socket, Buf, 0, Sun).
Add Comment
Please, Sign In to add comment