用户工具

站点工具


ocrobot:alpha:enc28j60:tutorial02

聊天服务器

用来分发任何传入的消息发送给所有一个简单的服务器,即局域网内多个服务端互相聊天,发送的服务器本身也能接收到自己刚刚发出的消息。 连接的客户端,消息来自客户端。 要使用telnet到你的设备的IP地址和类型。

搭建电路

1、将ALPHA ENC28J60堆叠于ALPHA MEGA328-U上;

2、用网线连接交换机与ALPHA ENC28J60,在拨码开关中,将10拨上;

3、将ALPHA MEGA328-U通过数据线连接上电脑

代码

/*
 聊天服务器
 
 用来分发任何传入的消息发送给所有一个简单的服务器
 连接客户端,要使用telnet到你的设备的IP地址和类型。
 
 创建182009年12月
 由David A.梅利斯
 修改2012年4月9日
 由汤姆Igoe
 
 */
 
#include <SPI.h>
#include <UIPEthernet.h>
 
byte mac[] = { 
  0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xED }; //输入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 alreadyConnected = false; //客户机是否被预先连接
 
void setup() {
  // 初始化以太网设备
  Ethernet.begin(mac, ip, gateway, subnet);
  // 开始监听客户端
  server.begin();
 //打开串口通信和等待端口打开:
  Serial.begin(9600);
   while (!Serial) {
    ;//等待串口连接,只被Leonardo
  }
 
 
  Serial.print("Chat server address:");
  Serial.println(Ethernet.localIP());
}
 
void loop() {
  //  等待一会
  EthernetClient client = server.available();
 
  // 当客户端发送的第一个字节,问好:
  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();
      // 响应字符返回给客户端:
      server.write(thisChar);
      // 响应所有包括的字符到服务器:
      Serial.write(thisChar);
    }
  }
}

聊天操作

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

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

返回上一级

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