用户工具

站点工具


ocrobot:alpha:enc28j60:tutorial03

DHCP聊天服务器

通过自动分配,获得一个随机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);
  }
}

聊天操作

1、打开IDE的串口监视器,查看ENC28J60分配的IP地址。

2、用PUTTY软件,以telnet的方式,登陆界面,发送信息,其他客户端即可收到并显示消息。

返回上一级

ocrobot/alpha/enc28j60/tutorial03.txt · 最后更改: 2023/06/07 04:23 由 127.0.0.1