-
Notifications
You must be signed in to change notification settings - Fork 42
/
10.4.1-Telnet.ino
66 lines (59 loc) · 1.67 KB
/
10.4.1-Telnet.ino
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
/*
OpenJumper ChatServer Example
http://www.openjumper.com/
http://x.openjumper.com/ethernet/
*/
#include <SPI.h>
#include <Ethernet.h>
// 输入MAC地址和IP地址,此后的设置将会用到
// IP地址需要根据你的本地网络设置
// 网关和子网掩码是可选项,可以不用
byte mac[] = {
0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xED};
IPAddress ip(192, 168, 1, 177);
// telnet 默认端口为23
EthernetServer server(23);
boolean alreadyConnected = false; // 记录是否之前有客户端被连接
String thisString = "";
void setup()
{
// 初始化网络设备
Ethernet.begin(mac, ip);
// 开始监听客户端
server.begin();
// 初始化串口
Serial.begin(9600);
// 串口输出提示信息
Serial.print("Chat server address:");
Serial.println(Ethernet.localIP());
}
void loop()
{
// 等待一个新的客户端连接
EthernetClient client = server.available();
// 当服务器第一次发送数据时,发送一个hello回应
if (client)
{
if (!alreadyConnected)
{
// 清除输入缓冲区
client.flush();
Serial.println("We have a new client");
client.println("Hello, client!");
alreadyConnected = true;
}
if (client.available() > 0)
{
// 读取从客户端发来的数据
char thisChar = client.read();
thisString += thisChar;
// 检测到结束符,便输出字符串
if (thisChar == '\n')
{
server.println(thisString);
Serial.println(thisString);
thisString = "";
}
}
}
}