Mám problém s vypísaním prijatých "dát" na serial monitor. Server mam napisany jednoduchy socket server v pythone. Vytvori skocket spojenie s klientom a odošle mu data. DATA SU LEN LUBOVOLNE ZNAKY
Kód: Vybrat vše
message=chr(48) + chr(52) + chr(51) + chr(53) + chr(57) + chr(51) + chr(57) + chr(35)
Kód: Vybrat vše
while((size = client.available()) > 0)
{
uint8_t* msg = (uint8_t*)malloc(size);
size = client.read(msg,size);
Serial.print("START");
Serial.write(msg,size);
Serial.println("END");
free(msg);
}
KOMPLET SERVER:
Kód: Vybrat vše
import socket
import sys
from time import sleep
HOST = '192.168.1.3' # Symbolic name, meaning all available interfaces
PORT = 8888 # Arbitrary non-privileged port
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
print (HOST)
print (PORT)
print ('Socket created')
#Bind socket to local host and port
try:
s.bind((HOST, PORT))
except socket.error as msg:
print ('Bind failed. Error Code : ' + str(msg[0]) + ' Message ' + msg[1])
sys.exit()
print ('Socket bind complete')
#Start listening on socket
s.listen(10)
print ('Socket now listening')
#now keep talking with the client
while 1:
#wait to accept a connection - blocking call
conn, addr = s.accept()
print ('Connected with ' + addr[0] + ':' + str(addr[1]))
message=chr(48) + chr(52) + chr(51) + chr(53) + chr(57) + chr(51) + chr(57) + chr(35)
conn.send(message)
sleep(0.5)
s.close()
Kód: Vybrat vše
192.168.1.3
8888
Socket created
Socket bind complete
Socket now listening
Connected with 192.168.1.118:1025
0435939#
Kód: Vybrat vše
#include <UIPEthernet.h>
#include <SPI.h>
EthernetClient client;
signed long next;
boolean state=false;
int size;
void setup(){
Serial.begin(9600);
uint8_t mac[6] = {0x00,0x01,0x02,0x03,0x04,0x05};
uint8_t ip[4] = {192,168,1,118};
uint8_t gateway[6] = {192,168,1,1};
uint8_t subnet[6] = {255,255,255,0};
Ethernet.begin(mac, ip, gateway, subnet);
Serial.print(" ");
Serial.print("localIP: ");
Serial.println(Ethernet.localIP());
Serial.print("subnetMask: ");
Serial.println(Ethernet.subnetMask());
Serial.print("gatewayIP: ");
Serial.println(Ethernet.gatewayIP());
Serial.print("dnsServerIP: ");
Serial.println(Ethernet.dnsServerIP());
}
void loop(){
if (((signed long)(millis() - next)) > 0){
Serial.println("Client connecting...");
client.connect(IPAddress(192,168,1,3),8888);
delay(3000);
state=client;
if (client){
Serial.println("Client connected");
delay(1000);
while(client){
delay(1000);
next = millis() + 5000;
if(client.available()==0){
if (next - millis() < 0){
goto close;
}
}delay(1000);
while((size = client.available()) > 0)
{
uint8_t* msg = (uint8_t*)malloc(size);
size = client.read(msg,size);
Serial.print("START");
Serial.write(msg,size);
Serial.println("END");
free(msg);
}
}
}
}
close:
Serial.println("Client disconnect");
client.stop();
}
Kód: Vybrat vše
localIP: 192.168.1.118
subnetMask: 255.255.255.0
gatewayIP: 255.255.255.0
dnsServerIP: 192.168.1.1
Client connecting...
Client connected
START0435939 END