-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathserver.lua
More file actions
executable file
·68 lines (54 loc) · 1.51 KB
/
Copy pathserver.lua
File metadata and controls
executable file
·68 lines (54 loc) · 1.51 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
#!/usr/local/bin/lua
local socket = require ("socket")
local tcpServer = nil
--创建指定端口的tcp server
local function createTCPServer( port )
-- Create Socket
local tcpServerSocket , err = socket.tcp()
local backlog = 5
-- Check Socket
if tcpServerSocket == nil then
return nil , err
end
-- Allow Address Reuse
tcpServerSocket:setoption( "reuseaddr" , true )
-- Bind Socket
local res, err = tcpServerSocket:bind( "*" , port )
if res == nil then
return nil , err
end
-- Check Connection
res , err = tcpServerSocket:listen( backlog )
if res == nil then
return nil , err
end
-- Return Server
return tcpServerSocket
end
--接受来自客户端的连接,并保存在tcpClient
local tcpClient = nil
local function acceptClient()
tcpServer:settimeout( 0 )
clientIn , _ = tcpServer:accept()
if clientIn then
tcpClient = clientIn
end
end
--接收已连接的客户端(tcpClient)数据
local function receiveLoop()
if tcpClient ~= nil then
local tcpClientMessage , _ = tcpClient:receive('*l')
if ( tcpClientMessage ~= nil ) then
print(tcpClientMessage)
tcpClient:send( "back:" .. tcpClientMessage .. "\n")
end
end
end
local function main()
tcpServer , _ = createTCPServer( 8080 )
if tcpServer then
Runtime:addEventListener( "enterFrame" , acceptClient )
Runtime:addEventListener( "enterFrame" , receiveLoop )
end
end
main()