ich versuche mehr oder minder erfolgreich an diesem schönen sommerlich Abend auf ein LCD welches durch die Anwendung lcdproc "versorgt" wird zu schreiben.
Mit viel Hilfe von ein paar netten Mitmenschen habe ich es hinbekommen eine Verbindung zu dem Server von LCDproc aufzubauen. Nun läuft mein Programm allerdings auf einen "Illegal Seek"-Error wenn ich versuche hinter einander mehrmals Daten zu senden. Meine Überlegung bis jetzt war das er evtl. nicht schnell genug die Daten verarbeiten kannt, aber selbst ein usleep zwischendurch hat nicht wirklich Abhhilfe geschaffen. Mein Quellcode schaut im moment so aus:
Code: Alles auswählen
#include <stdio.h>
#include <stdlib.h>
#include <sys/types.h>
#include <sys/socket.h>
#include <netdb.h>
#include <netinet/in.h>
#include <arpa/inet.h>
#include <unistd.h>
#include <sys/time.h>
const char* host="127.0.0.1";
const char* port="13666";
int s=-2;
// Aufbau der Verbindung
int init_conn()
{
struct sockaddr_in srv;
s=socket(AF_INET, SOCK_STREAM, 0);
if(s==-1)
{
perror("socket failed()");
return -1;
}
srv.sin_addr.s_addr=inet_addr(host);
srv.sin_port=htons((unsigned short int)atol(port));
srv.sin_family=AF_INET;
if(connect(s, &srv, sizeof(srv))==-1)
{
perror("connect failed()");
return -1;
}
}
// Senden der Daten an das Socket
int sending(char* command)
{
int sent;
sent=send(s, command, strlen(command), 0);
if(sent==-1);
{
perror("send()");
return -1;
}
}
int main()
{
init_conn();
sending("client_set name{lcdmpd}");
sending("screen_add lcdmpd");
sending("screen_set lcdmpd name {lcdmpd}");
close(s);
}
Viele Grüsse
Dan