Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Скачиваний:
98
Добавлен:
20.02.2016
Размер:
1.48 Кб
Скачать
#include<sys/types.h>
#include<sys/socket.h>
#include<netinet/in.h>
#include<string.h>
#include<stdio.h>
#include<pthread.h>

#define MAXLEN 50
#define PORTNUM 2222

void *sendcon(void* pdest)
{
	int sock;
	char *buf="con";
	while(1)
	{
		sleep(10);
		sock=myconnect( (struct sockaddr*)pdest);
		send(sock, buf, strlen(buf)+1, 0);
		/**/printf("client send prove \"con\"\n");
	}
}

int myconnect (struct sockaddr* pdest)
{
	int mysocket=socket(AF_INET, SOCK_STREAM, 0);
	connect(mysocket, pdest, sizeof(struct sockaddr));
	/**/printf("client success connecting, sock = %d\n", mysocket);
	return mysocket;
}

int main (void)
{
	char buf[MAXLEN+1];
	int mysocket, len;
	pthread_t thr;
	struct sockaddr_in dest;
	memset (&dest, 0, sizeof(dest));
	dest.sin_family=AF_INET;
	dest.sin_addr.s_addr = htonl(INADDR_LOOPBACK);
	dest.sin_port= htons(PORTNUM);
	/**/printf("client begin\n");
	mysocket=myconnect((struct sockaddr*)&dest);
	
	pthread_create(&thr, NULL, sendcon, (void *)&dest);
	scanf("%50s", buf);
	while (strcmp(buf, "exit")!=0)
	{
		/**/printf("client string %s entered, sock = %d\n", buf, mysocket);
		send(mysocket, buf, strlen(buf)+1, 0);
		/**/printf("client message sent\n");
		len=recv(mysocket, buf, MAXLEN, 0);
		/**/printf("client message recieved, %d\n", len);
		/**/printf("client %s\n", buf);		
		scanf("%50s", buf);
		mysocket=myconnect((struct sockaddr*)&dest);
	}
	close(mysocket);
	pthread_cancel(thr);
	/**/printf("client exit\n");
	getchar();
	return 0;
}

Соседние файлы в папке 2