Ich danke dir schonmal. Die Kommunikation läuft mehr oder weniger, jedoch noch nicht reibungslos. Sorgt der "tcp_socket_process" dafür das die vom Mikrocontroller empfangenden Daten Bestätigt werden(also Segment ohne Datenoffset und ACK gesetzt) oder muss ich dies selber machen, wie folgt:
Code: Alles auswählen
tcp_entry[index].status = ACK_FLAG;
create_new_tcp_packet(0,index);
PSH_FLAG steht dafür, dass daten für höhrere Schichten vohanden ist, oder?
Der folgende Code ist in Ordnung, bzw. die Bedingung wird wahr, wenn etwas empfangen wird. Dannach möchte ich den Ethernet-Buffer auslesen und die empfangenden Daten wieder zurück schicken. Das Problem ist, die Bedingung wird wahr aber es kommen die falschen Daten am Remote Host an(Deklaration des Arrays falsch; Buffer falsch augelesen??).
Code: Alles auswählen
if ((tcp_entry[index].app_status > 1) && (tcp_entry[index].status&PSH_FLAG))
{
tcp_entry[index].status = ACK_FLAG;
create_new_tcp_packet(0,index);
char d[ TCP_DATA_START_VAR - TCP_DATA_END_VAR];
tcp_entry[index].app_status = 2;
int a;
for (a = TCP_DATA_START_VAR;a<(TCP_DATA_END_VAR);a++)
{
d[a] = eth_buffer[a];
}
d[a++] = '\0';
telnetd_status.ack_wait = 0;
telnetd_send_data(index , d);
/**********time???????????????*************/
//tcp_entry[index].time = TCP_TIME_OFF;
return;
}
Ich Programmiere eigentlich OOP in C# also nicht über dumme Fehler wundern