91av视频/亚洲h视频/操亚洲美女/外国一级黄色毛片 - 国产三级三级三级三级

資源簡介

使用Linux內核鏈表實現多客戶端連接服務器,里面有三種功能,1、TCP多人連接客戶端,服務器可以把信息發給多個用戶;2、TCP多人連接客戶端,可以把信息發給指定的某個用戶;3、服務器接收多個客戶端傳送過來的文件。

資源截圖

代碼片段和文件信息

//1.TCP多人連接客戶端,服務器可以把信息發給多個用戶
//就像QQ群一樣
/*
#include?
#include?
#include?
#include?
#include?
#include?
#include?



void?*routine(void?*arg)
{
int?sockfd?=?*(int?*)arg;
char?buf[1024];
while(1)
{
bzero(buf?1024);

int?ret?=?read(sockfd?buf?sizeof(buf));
if(ret?<=?0)
{
break;
}
printf(“recv?data:?%s\n“?buf);
if(strcmp(buf?“end“)?==?0)
{
printf(“對方已經退出\n“);
}
}

}

int?main(int?argc?char?const?*argv[])
{
int?sockfd?=?socket(AF_INET?SOCK_STREAM?0);
if(sockfd?==?-1)
{
perror(“socket?failed“);
return?-1;
}

struct?sockaddr_in?server;
int?len?=?sizeof(struct?sockaddr_in);
memset(&server?0?len);

server.sin_family?=?AF_INET;
server.sin_port???=?htons(atoi(argv[1]));
server.sin_addr.s_addr?=?inet_addr(argv[2]);

int?ret?=?connect(sockfd?(struct?sockaddr?*)&server?len);
if(ret?==?-1)
{
perror(“connect?failed“);
close(sockfd);
return?-1;
}

pthread_t?tid;
pthread_create(&tid?NULL?routine?(void?*)&sockfd);
pthread_detach(tid);


char?buf[100];
while(1)
{
memset(buf?0?sizeof(buf));
scanf(“%[^\n]“?buf);
while(getchar()?!=?‘\n‘);

write(sockfd?buf?strlen(buf));
if(strcmp(buf?“end“)?==?0)
{
break;
}
}

return?0;
}
*/

//2.TCP多人連接客戶端,可以把信息發給指定的某個用戶
/*#include?
#include?
#include?
#include?
#include?
#include?
#include?



void?*routine(void?*arg)
{
int?sockfd?=?*(int?*)arg;
char?buf[1024];
while(1)
{
bzero(buf?1024);

int?ret?=?read(sockfd?buf?sizeof(buf));
if(ret?<=?0)
{
break;
}
printf(“recv?data:?%s\n“?buf);
if(strcmp(buf?“end“)?==?0)
{
printf(“對方已經退出\n“);
}
}

}

int?main(int?argc?char?const?*argv[])
{
int?sockfd?=?socket(AF_INET?SOCK_STREAM?0);
if(sockfd?==?-1)
{
perror(“socket?failed“);
return?-1;
}

struct?sockaddr_in?server;
int?len?=?sizeof(struct?sockaddr_in);
memset(&server?0?len);

server.sin_family?=?AF_INET;
server.sin_port???=?htons(atoi(argv[1]));
server.sin_addr.s_addr?=?inet_addr(argv[2]);

int?ret?=?connect(sockfd?(struct?sockaddr?*)&server?len);
if(ret?==?-1)
{
perror(“connect?failed“);
close(sockfd);
return?-1;
}

pthread_t?tid;
pthread_create(&tid?NULL?routine?(void?*)&sockfd);
pthread_detach(tid);


int?selfid?=?0;
printf(“self:“);?scanf(“%d“?&selfid);

char?buf[100];
while(1)
{
int?toid?=?0;
memset(buf?0?sizeof(buf));

printf(“toid:“);scanf(“%d“?&toid);
printf(“data:“);while(getchar()?!=?‘\n‘);
scanf(“%s“?buf);




char?sendbuf[1024]={0};
sprintf(sendbuf?“id:%dto:%ddata:%s“?selfid?toid?buf);
write(sockfd?sendbuf?strlen(sendbuf));
if(strcmp(buf?“end“)?==?0)
{
break;
}
}

return?0;
}

?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----

?????文件???????7887??2018-01-10?11:22??client_server\client

?????文件???????4950??2018-01-10?11:16??client_server\client.c

?????文件???????7628??2015-08-04?15:27??client_server\kernel_list.h

?????文件??????12461??2018-01-10?11:22??client_server\server

?????文件??????11398??2018-01-09?16:42??client_server\server.c

?????目錄??????????0??2018-01-10?11:22??client_server

-----------?---------??----------?-----??----

????????????????44324????????????????????6


評論

共有 條評論