通过自动分配,获得一个随机IP地址,作为服务端。 用来分发任何传入的消息发送给所有一个简单的服务器,即局域网内多个服务端互相聊天,发送的服务器本身也能接收到自己刚刚发出的消息。 连接的客户端,消息来自客户端。 要使用telnet到你的设备的IP地址和类型。
1、将ALPHA ENC28J60堆叠于ALPHA MEGA328-U上;
2、用网线连接交换机与ALPHA ENC28J60,在拨码开关中,将10拨上;
3、将ALPHA MEGA328-U通过数据线连接上电脑
/* DHCP聊天服务器 用来分发任何传入的消息发送给所有一个简单的服务器 连接客户端,要使用telnet到你的设备的IP地址和类型。 这个程序尝试获取使用DHCP获取IP地址 创建20115月21日 修改2012年4月9日 由汤姆Igoe 由David A.梅利斯基于的ChatServer例子 */ #include <SPI.h> #include <UIPEthernet.h> byte mac[] = { 0x00, 0xAA, 0xBB, 0xCC, 0xDE, 0x02 };//输入MAC地址和IP地址下面控制器。 IPAddress ip(192,168,100, 177);// IP地址将取决于你的本地网络上。 IPAddress gateway(192,168,100, 1);//网关和子网是可选的: IPAddress subnet(255, 255, 255, 0); // telnet的默认串口为23 EthernetServer server(23); boolean gotAMessage = false; //无论是否从客户端获得一条消息 void setup() { // 打开串口通信和等待端口打开: Serial.begin(9600); // 只有Leonardo需要检查: while (!Serial) { ; // 等待默认串口连接,只被Leonardo需要 } //开始以太网连接 Serial.println("Trying to get an IP address using DHCP"); if (Ethernet.begin(mac) == 0) { Serial.println("Failed to configure Ethernet using DHCP"); // 初始化没有使用DHCP的以太网设备: Ethernet.begin(mac, ip, gateway, subnet); } //打印你获得的本地IP地址 Serial.print("My IP address: "); ip = Ethernet.localIP(); for (byte thisByte = 0; thisByte < 4; thisByte++) { //打印的IP地址的每个字节的值: Serial.print(ip[thisByte], DEC); Serial.print("."); } Serial.println(); //开始监听客户端 server.begin(); } void loop() { // 等待一个新的客户端: EthernetClient client = server.available(); //当客户端发送第一个字符,说hello if (client) { if (!gotAMessage) { Serial.println("We have a new client"); client.println("Hello, client!"); gotAMessage = true; } //从客户端读取传入的字符: char thisChar = client.read(); // 响应字符返回给客户端 server.write(thisChar); //打印所有接收到的字符到客户端 Serial.print(thisChar); } }