Большое спасибо за советы и подсказки я их все учел и исправил ошибки но помогло мне другое
printf("прослушивание порта началось");
сдесь в конце строки нет "\n" как только его поставил все заработало
Можно это я просто что-то не так понимаю, но поидее он должен был написатьстроку без перевода коретки на новую строку, а не зависать как в моем случае.
Пробовал тестить с помощью конструкции типа
for(i=1;i<10;i++)
{
printf("цикл");
}
зависает...
for(i=1;i<10;i++)
{
printf("цикл\n");
}
работает и выводит 10 раз цикл
Но теперь проблема в другом
Вот несколько модернезированный файл
#include<sys/socket.h>
#include <sys/types.h>
#include<string.h>
#include<netinet/in.h>
#include<netdb.h>
#include<memory.h>
#include<stdio.h>
#include<curses.h>
#include <arpa/inet.h>
#include<pthread.h>
#include<unistd.h>
pthread_t p_thread;
pthread_attr_t attr;
void * ClientThread(void *data)
{
int sock=(int)data;
char szSendBuff[1024],szRecvBuff[1024];
int ret;
printf("рПФПЛ ВЩМ ХУРЕЫОП УПЪДБО\n");
while(1)
{
ret=recv(sock,szRecvBuff,1024,0);
if (ret==0) break;
else if (ret == -1) {printf("пЫЙВЛБ РТЙ РПМХЮЕОЙЙ ДБООЩИ Ч РПФПЛЕ\n"); break;}
printf(szRecvBuff,"\n");
strcpy(szSendBuff,szRecvBuff);
if (ret=send(sock,szSendBuff,sizeof(szSendBuff),0)==-1) break;
}
}
int main ()
{
printf("оБЮБМП ТБВПФЩ РТПЗТБННЩ\n");
int sServerListen,sClient;
int sock,iSize;
struct sockaddr_in localaddr,clientaddr; //УФТХЛФХТБ ДМС БДТЕУБ
// struct hostent* h;
sServerListen=socket(PF_INET,SOCK_STREAM,0);
if (sServerListen==-1)
{
printf("пЫЙВЛБ Ч УПЪДБОЙЙ УПЛЛЕФБ\n");
return(1);
}
memset(&localaddr,(int)0,(size_t)sizeof(localaddr));
localaddr.sin_addr.s_addr=htonl(INADDR_ANY);
localaddr.sin_family=AF_INET;
localaddr.sin_port=htons(3010);
if (bind(sServerListen,(struct sockaddr*)&localaddr,sizeof(localaddr))==-1)
{
close(sServerListen);
printf("пЫЙВЛБ РТЙ РТЙЧСЪЛЕ УПЛЛЕФБ Л МПЛБМШОПНХ БДТЕУХ\n");
return(1);
}
printf("рТЙЧСЪЛБ Л МПЛБМШОПНХ БДТЕУХ РТПЙЪПЫМБ ХУРЕЫОП\n");
if (listen(sServerListen,2)==-1)
{
close(sServerListen);
printf("ПЫЙВЛБ РТЙ РТПУМХЫЙЧБОЙЕ УПЛЛЕФБ\n");
return(1);
}
printf("РТПУМХЫЙЧБОЙЕ РПТФБ ОБЮБМПУШ\n");
printf("оБЛПОЕГ-ФП\n");
int i;
// for (i=1;i<10;i++)
// {
// printf("ГЙЛМ\n");
// }
while(1)
{
printf("ГЙЛМ\n");
iSize=sizeof(clientaddr);
printf("ГЙЛМ\n");
if (sClient=accept(sServerListen,(struct sockaddr *) &clientaddr,(socklen_t *)&iSize)==-1)
{
printf("пЫЙВЛБ РТЙ УПЪДБОЙЙ ДПЮЕТОЕЗП УПЛЕФБ\n");
}
printf("ДПЮЕТОЙК УПЛЕФ ДПМЦЕО УПЪДБФШУС");
int temp;
temp=pthread_create(&p_thread,NULL,ClientThread,&sClient);
printf("ДПЮЕТОЙК РТПГЕУУ ДПМЦЕО УПЪДБФШУС");
}
close(sServerListen);
return 0;
}
И теперь при компиляции выводит ошибку
/tmp/cc7tryST.o(.text+0*28f):in function 'main':
:undefined reference to 'pthread_create'
colelect2: ld returned 1 exit status
но при выводе ниже следующего из бесконечного цикла ошибок при компиляции нет но и программа работает не так как надо :)
int temp;
temp=pthread_create(&p_thread,NULL,ClientThread,&sClient);