|
|
导航: |
论坛 -> 发布代码
斑竹:liumazi,ruralboy |
|
作者: |
msfm (清洁工) |
★☆☆☆☆ |
-
|
盒子活跃会员 |
|
2016/1/21 16:12:37 |
标题: |
erlang 与delphi通讯 这样设置不会有粘包问题哦 |
浏览:2381 |
|
加入我的收藏 |
楼主: |
-module(server). -export([start/1, server_proc/1]).
start (Port) -> {ok, Sock} = gen_tcp:listen(Port, [binary, {packet, 2}, {active, false}]),
server_loop(Sock).
server_loop (LSock) -> {ok, Sock} = gen_tcp:accept(LSock),
spawn(?MODULE, server_proc, [Sock]),
server_loop(LSock).
server_proc (Sock) -> Request = case gen_tcp:recv(Sock, 0) of {ok, ReqBin} -> binary_to_list(ReqBin); {error, closed} -> io:format("Client closed~n"), exit(closed); {error, Reason} -> io:format("Error: ~s~n", Reason), exit(Reason) end,
io:format("Received: ~p~n", [Request]), mysql:start_link(conn, "127.0.0.1", 3306, "root", "123", "moordb", undefined, gbk), [A1,A2,A3,A4,A5,A6,A7,A8,A9,A10,A11,A12,A13,A14,A15,A16,A17]=re:split(Request,","),
B1=binary_to_list(A1), B2=binary_to_list(A2), %%Sql = [list_to_binary(lists:concat(["insert into test values('",B1,"','",B2,"')"]))],
Sql = lists:concat(["insert into test values('",B1,"','",B2,"')"]), io:format("~p~n",[Sql]),
mysql:fetch(conn,Sql), %%TT = mysql:get_result_reason(Err), %%io:format("error ~ts~n",[TT]),
Response = "Done!", A= Request++"\n\r", %% io:format("::::::~p~n",[A]), gen_tcp:send(Sock, io_lib:fwrite("OK:~p.~n", [A])), %% gen_tcp:send(Sock, A),
server_proc(Sock).
procedure TForm1.FormCreate(Sender: TObject); begin IdTCPClient1.Port := 1111; IdTCPClient1.Host := '127.0.0.1'; IdTCPClient1.Connect; // caption:=word.Size.ToString() ; end;
procedure TForm1.Button1Click(Sender: TObject);
var tmps:ansistring; len:byte; a:Byte; sm: TStringStream;// TMemoryStream; ss:string; begin sm:=TStringStream.Create('',TEncoding.ANSI); tmps := 'dhy13704416,马东海,1,2015-02-03,37,汉,河南省郏县薛四谛法号,公安局,156558969461,,,,,2016-01-18 11:12:20,172,70,27'; // tmps:='123'; len:=Length(tmps); a:=0; // ('中午') AnsiToUtf8('aaa') // WriteBufData(len,1); WriteBufData(a,1); ; // WriteStr(tmps); sm.WriteBuffer(a,1); sm.WriteBuffer(Len,1);
sm.WriteBuffer(tmps[1],len); sm.Position:=0; // IdTCPClient1.IOHandler.Write(sm.DataString); IdTCPClient1.IOHandler.Write(sm); // 、、 IdTCPClient1.WriteLn(( '中午')); //IdTCPClient1.Writeln(fdata); // IdTCPClient1.WriteLn(( '中午'));
ss:= IdTCPClient1.IOHandler.ReadLn(IndyTextEncoding(TEncoding.ANSI)) ; Memo1.Lines.Text:=ss; // IdTCPClient1.IOHandler.Send(tmps); end;
----------------------------------------------
- |
作者: |
msfm (清洁工) |
★☆☆☆☆ |
-
|
盒子活跃会员 |
|
2016/1/21 16:16:21 |
1楼: |
我测试过 erlang 单机 我设置了 连接 8W 竟然一点问题没有 超强 够用了
----------------------------------------------
-
|
作者: |
msfm (清洁工) |
★☆☆☆☆ |
-
|
盒子活跃会员 |
|
2016/1/21 16:17:58 |
2楼: |
难兄难弟 不让人待见的 2个语言
----------------------------------------------
-
|
作者: |
|
2016/1/21 18:00:04 |
3楼: |
感觉很强大的样子,楼主能多八一点吗
----------------------------------------------
-
|
作者: |
|
2016/1/22 9:03:14 |
4楼: |
erlang本身就是高并发并行执行的设计, 不过这语法貌似比objective-C 还扯淡..
----------------------------------------------
|
作者: |
|
2016/1/26 10:11:40 |
5楼: |
当各种语言在朝着自然语言接近的时候,erlang go反其道而行,接近机器,让机器更容易解读。难推广也就在所难免。
----------------------------------------------
-
|
|