功能:PC机当Server,开发板当Client
PC机IP地址:192.168.3.2 ,端口2493
开发板的资料看程序中定义。
我这里只做了超简单的测试,连接成功后不停的发“hello”。如果有兴趣的可以看下我的函数然后自己加入一些功能。如果是server方式不知道连接数是多少?
我只做了我们项目的一些功能,
发个TCPIP/UDP调试工具:USR-TCP232-Test.zip
然后定义两个
TEthernet my_ethernet;
EthernetClient my_client;
这两个定义可用通过“Ethernet.h”查看定义。
怎么打开?不会,我告诉你,增加"gr_sakura_ethernet Library"库后,点击左边项目文件夹可以找到相关文件并可以下载。
/*GR-SAKURA Sketch Template Version: V1.01*/
#include <rxduino.h>
#include <Ethernet.h>
TEthernet my_ethernet;
EthernetClient my_client;
#define INTERVAL 100
unsigned char mac[6]={0x78,0x2b,0xcb,0x85,0x6d,0x93};
unsigned char ip[4]={192,168,3,4};
unsigned char dns[4]={255,255,255,0};
unsigned char gateway[4]={192,168,3,1};
//Ethernet.begin(mac[6], ip[4], dns[4], gateway[4])
unsigned char server_ip[4]={192,168,3,2};
short server_port=2493;
void setup()
{
pinMode(PIN_LED0,OUTPUT);
pinMode(PIN_LED1,OUTPUT);
pinMode(PIN_LED2,OUTPUT);
pinMode(PIN_LED3,OUTPUT);
my_ethernet.begin(mac, ip, dns, gateway);
my_client.connect(server_ip,server_port);
}
void loop()
{
unsigned char my_data[]="hello";
digitalWrite(PIN_LED0, 1);
delay(INTERVAL);
digitalWrite(PIN_LED1, 1);
delay(INTERVAL);
digitalWrite(PIN_LED2, 1);
delay(INTERVAL);
digitalWrite(PIN_LED3, 1);
delay(INTERVAL);
digitalWrite(PIN_LED0, 0);
delay(INTERVAL);
digitalWrite(PIN_LED1, 0);
delay(INTERVAL);
digitalWrite(PIN_LED2, 0);
delay(INTERVAL);
digitalWrite(PIN_LED3, 0);
delay(INTERVAL);
my_client.write(my_data,5);
}
15、以太网 #include <Ethernet.h>
15.1 begin
概述:当无参数时,通过DHCP获得
用法:int Ethernet.begin(mac[6])
Ethernet.begin(mac[6], ip[4])
Ethernet.begin(mac[6], ip[4], dns[4])
Ethernet.begin(mac[6], ip[4], dns[4], gateway[4])
Ethernet.begin(mac[6], ip[4], dns[4], gateway[4], subnet[4])
参数:MAC:MAC地址
IP:IP地址
DNS 地址,
默认网关:网关
子网掩码:
返回值:成功返回1,失败返回0
15.2 localIP
概述:返回自己IP地址。
用法:char* Ethernet.localIP()
参数:无
返回值:返回四字节的IP地址。
15.3 isLinkup
概述:查看是否在局域网内。
用法:bool Ethernet.isLinkup()
参数:无
返回值:返回BOOL型。成功:true,失败:false
15.4 Ping
概述:ping目标主机。
用法:bool Ethernet.Ping(const char* hostname)
bool Ethernet.Ping(byte ip[4])
参数:无
返回值:返回BOOL型。成功:true,失败:false
15.5 Gethostbyname
概述:根据主机名得到IP地址。
用法:byte* Ethernet.gethostbyname(const char* hostname)
参数:主机名
返回值:返回IP地址
15.6 dhcp
概述:重新自动得到DHCP。
用法:bool Ethernet.dhcp()
参数:无
返回值:成功与失败,BOOL型,成功:true,失败:false
15.7 sendUDP
概述:发送UDP包。
用法:bool Ethernet.sendUDP(byte ip[4], short port, byte* buf, int len)
参数:ip[4]:目标IP地址
Port:目标端口
*buf:缓冲数据
Len:数据长度
返回值:成功与失败,BOOL型,成功:true,失败:false
15.8 registUdpHandler
概述:注册一个DUP功能函数
用法:Ethernet.registUdpHandler(func)
参数:func:UDP功能函数
返回值:无
15.9 processPackets
概述:
用法:Ethernet.processPackets()
参数:无
返回值:无
16、Ehternet,TCP服务器类
16.1 begin
概述:开始连接的服务器
用法:server.begin()
参数:无
返回值:无
16.2 available
概述:判断是否与目的IP连接。
用法:EthernetClient server.available()
参数:无
返回值:BOOL型,成功:true,失败:false
16.2 write
概述:发送的字符串数据到所有连接的客户端。
用法:server.write(data)
server.write(unsigned char* buf, int len)
参数:data:发送一个字节数据
*buf: 缓冲数据包
Len:缓冲数据长度
返回值:无
16.3 print
概述:发送的字符串数据到所有连接的客户端。
用法:server.print(data)
server.print(data, BASE)
参数:data:发送一个字节数据
BASE:基地(BYTE,DEC,BIN,HEX,OCT)
Len:缓冲数据长度
返回值:无
16.4 println
概述:发送的字符串数据到所有连接的客户端。
用法:server.println()
server.println(data)
server.println(data, BASE)
参数:data:发送一个字节数据
*buf: 缓冲数据包
BASE:基地(BYTE,DEC,BIN,HEX,OCT)
返回值:无
17、Ehternet TCP客户端类
17.1 connect
概述:连接到服务器。
用法:bool client.connect(byte server[4], short port)
参数:server[4]:服务器IP地址
Port:服务器端口。
返回值:BOOL型,成功:true,失败:false
17.2 connected
概述:是否连接到服务器。
用法:bool client.connected()
参数:无。
返回值:BOOL型,成功:true,失败:false
17.3 stop
概述:关闭服务器连接
用法:client.stop()
参数:无。
返回值:无
17.4 write
概述:将字符串数据发送给对方
用法:client.write(data)
client.write(unsigned char* buf, int len)
参数:data:发送一个字节数据
*buf: 缓冲数据包
Len:缓冲数据长度
返回值:无
17.5 print
概述:发送的字符串数据到所有连接的客户端。
用法:client.print(data)
client.print(data, BASE)
参数:data:发送一个字节数据
BASE:基地(BYTE,DEC,BIN,HEX,OCT)
Len:缓冲数据长度
返回值:无
17.6 println
概述:发送的字符串数据到所有连接的客户端。
用法:client.println()
client.println(data)
client.println(data, BASE)
参数:data:发送一个字节数据
*buf: 缓冲数据包
BASE:基地(BYTE,DEC,BIN,HEX,OCT)
返回值:无
17.7 available
概述:查看是否有从对方接收到的数据连接。
用法:int client.available()
参数:无
BASE:基地(BYTE,DEC,BIN,HEX,OCT)
返回值:接收缓冲器中存储的数据的数量
17.8 read
概述:发送的字符串数据到所有连接的客户端。
用法:int client.read()
参数:无
返回值:读数据,如果没有数据返-1。
回复
有奖活动 | |
---|---|
【有奖活动】分享技术经验,兑换京东卡 | |
话不多说,快进群! | |
请大声喊出:我要开发板! | |
【有奖活动】EEPW网站征稿正在进行时,欢迎踊跃投稿啦 | |
奖!发布技术笔记,技术评测贴换取您心仪的礼品 | |
打赏了!打赏了!打赏了! |