-
Notifications
You must be signed in to change notification settings - Fork 8
Expand file tree
/
Copy pathserver.cpp
More file actions
67 lines (56 loc) · 1.46 KB
/
server.cpp
File metadata and controls
67 lines (56 loc) · 1.46 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
system("chcp 65001"); //use utf8 string
#import "socket"
//服务端部分
var socket_accept(var socketIndex)
{
println("检测到有一个连接:{socketIndex}");
}
var socket_data(var socketIndex,var buffer)
{
var packageSize = buffer.readInt32();
var s = buffer.readString(packageSize-4);
println(s);
if(s == "e")
{
srv.closesocket(socketIndex);
}
var writer = new Buffer();
writer.writeString(s);
socket_send(socketIndex, writer);
}
var socket_close(var socketIndex,var err,var errstr)
{
println("检测到有一个关闭:{socketIndex},err:{err},errstr:{errstr}");
}
var socket_parser(var headerbuffer)
{
var size = headerbuffer.readInt32();
return size;
}
var socket_send(var socketIndex,var buffer)
{
var writer = new Buffer();
writer.writeInt32(buffer.length() + 4);
writer.write(buffer,buffer.length());
srv.send(socketIndex, writer);
}
println("start server");
// var srv = new socket::server().setoption(new ServerOption(){
// ip = "0.0.0.0",
// accept = socket_accept,
// data = socket_data,
// close = socket_close
// }).listen(4060);
var srv = new socket::server().setoption(new ServerOption(){
ip = "0.0.0.0",
headersize = 4,//字节
accept = socket_accept,
data = socket_data,
close = socket_close,
parser = socket_parser
}).listen(4060);
println("start over");
while (true){
srv.run();
Sleep(1);
}