Hoi ik heb een groot probleem, ik ben voor mijn stage iets aan het maken dat in 2 threads berichten buffert en uitleest. De ene leest de andere buffert.
Ik heb een file TCP.c
Dit gaat mis maar waarom, wat doe ik fout ik weet niet meer hoe het anders moet.. ben echt desperate want ik ben er al 2 maanden mee bezig
Ik heb een file TCP.c
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
| char *bericht;
// hierin wordt het initiele bericht--> van de dss opgevangen
char *slaOpBericht;
// Dit bericht wordt gebruikt om de daadwerkelijke data in te kopieren
int sLuister;
int aantalPlaatsenOpStack=0;
pthread_mutex_t mutex;
typedef struct
{
char *boodschap;
// dit bevat het daadwerkelijk data pakketje bv {01029SDI|1023}
}IPSTACK;
void *bufferTcpMessages(void *threadId)
{
int i=0;
int lengte=0;
while(1)
{
pthread_mutex_lock(&mutex);
lengte = recv(sLuister,bericht,1000,0);
printf("[BUFFER-IN]:while-loop --> berichtontvangen -- %i -- ",lengte);
if (lengte > 0)
{
bericht[lengte]='\0'; // toevoegen terminator aan bericht
slaOpBericht=(char *)malloc(lengte*sizeof(char));
strcpy(slaOpBericht,bericht);
printf("-%s-[/BUFFER-IN] \n",slaOpBericht);
stack[i].boodschap = (char *)malloc(strlen(slaOpBericht)*sizeof(char));
stack[i].boodschap = slaOpBericht;
aantalPlaatsenOpStack++;
printf("aantalplaatsenopstack -- buffer - %i\n",aantalPlaatsenOpStack);
i++;
}
pthread_mutex_unlock(&mutex);
sleep(1);
}
}
void *haalTcpMessageOp(void *threadId)
{
char *bericht;
int i,j;
while(1)
{
pthread_mutex_lock(&mutex);
printf("[VERWERK]haalberichtuitbuffer -->");
for(i=0;i<aantalPlaatsenOpStack;i++)
{
bericht = (char *) malloc(strlen(stack[i].boodschap)*sizeof(char));
bericht = stack[i].boodschap;
printf("verwerkt bericht %s [/VERWERK]\n",bericht);
printf("aantalplaatsenopstack -- haalop - %i\n",aantalPlaatsenOpStack);
pthread_mutex_unlock(&mutex);
sleep(2);
}
}
} |
Dit gaat mis maar waarom, wat doe ik fout ik weet niet meer hoe het anders moet.. ben echt desperate want ik ben er al 2 maanden mee bezig