Hallo,
ich entwickele gerade unter Unix mit C ein socket Programm. Das Programm soll auf port 1010 (TCP) horchen und mir die daten die reinkommen auf der Shell ausgeben. Das ganz funktioniert bestens mit Telnet (benutze ich für den Test), jedoch wenn das richtige Programm anfragen schicken lasse, so wird lediglich ein €* ausgegeben. Mit TCPdump habe ich geprüft ob die richtige Daten reinkommt und dem ist so.
aktuell weiß ich nicht wieso das Programm €* ausgibt statt z.b. den folgenden string "RSD0900C6A0T1600496001114P 001001000000D D I 0000AVI 000999999099"
gibt es eventuell irgendwie etwas was ich nicht berücksichtigt habe ?
hier mein code
ich entwickele gerade unter Unix mit C ein socket Programm. Das Programm soll auf port 1010 (TCP) horchen und mir die daten die reinkommen auf der Shell ausgeben. Das ganz funktioniert bestens mit Telnet (benutze ich für den Test), jedoch wenn das richtige Programm anfragen schicken lasse, so wird lediglich ein €* ausgegeben. Mit TCPdump habe ich geprüft ob die richtige Daten reinkommt und dem ist so.
aktuell weiß ich nicht wieso das Programm €* ausgibt statt z.b. den folgenden string "RSD0900C6A0T1600496001114P 001001000000D D I 0000AVI 000999999099"
gibt es eventuell irgendwie etwas was ich nicht berücksichtigt habe ?
hier mein code
Code:
#include <sys/types.h>
#include <sys/socket.h>
#include <stdio.h>
#include <netinet/in.h>
#include <arpa/inet.h>
#define BUF_SIZ 4096
main()
{
int server_socket, neuer_socket;
int laenge,bytes;
char buffer[BUF_SIZ];
struct sockaddr_in serverinfo, clientinfo;
unsigned short int portnummer = 1010;
char ip_adresse[] = "127.0.0.1";
printf("\n Server: socket()...");
server_socket = socket(AF_INET, SOCK_STREAM, 0);
serverinfo.sin_family = AF_INET;
serverinfo.sin_addr.s_addr = INADDR_ANY;
serverinfo.sin_port = htons(portnummer);
laenge = sizeof(serverinfo);
printf("\n Server: bind()...");
bind(server_socket, (struct sockaddr *)&serverinfo, laenge);
printf("\n Server: listen()...");
printf("\n Server mit IP %s",ip_adresse);
printf(" an Port %d wartet...",portnummer);
listen(server_socket, 3);
printf("\n Server: accept()...");
neuer_socket = accept(server_socket, (struct sockaddr *)&clientinfo, &laenge);
printf("Verbindung mit %s",inet_ntoa(clientinfo.sin_addr));
while((bytes = recv(neuer_socket, buffer, sizeof(buffer), 0)) > 0)
printf(">>>>%s\n",buffer);
printf("\n Server: close()...");
close(server_socket);
close(neuer_socket);
printf("\n Serverprogramm beendet\n\n");
return(0);
}