77范文网 - 专业文章范例文档资料分享平台

Linux课程设计(3)

来源:网络收集 时间:2019-03-23 下载这篇文档 手机版
说明:文章内容仅供预览,部分内容可能不全,需要完整文档或者需要复制内容,请下载word后使用。下载word有问题请添加微信号:或QQ: 处理(尽可能给您提供完整文档),感谢您的支持与谅解。点击这里给我发消息

#include

#define MAXLINE 1000 //在一条消息中最大的输出字符数 #define LISTENQ 20 //最大监听队列 #define PORT 1000 //监听端口

#define MAXFD 20 //最大的在线用户数量 void *get_client(void *); int sockfd,i;

static int maxi=0;//maxi表示当前client数组中最大的用户的i值 static int client[MAXFD];

void recvandsend(void) //监听转发线程入口函数 {

int index=0; int nbytes=0; char buffer[1024]; int len; int outindex=0; while(1) {

if(maxi>0) {

memset(buffer,0,sizeof(buffer)); nbytes=0;

//index++;

nbytes=read(client[index++],buffer,sizeof(buffer)); printf(\if(nbytes>0) {

buffer[nbytes]='\\0'; printf(\outindex=0;

while(outindex

if(write(client[outindex++],buffer,sizeof(buffer))==-1) {

fprintf(stderr,\exit(1);

//

}

}

}

if(index>=maxi)

index=0;

}

pthread_exit(NULL);

}

int main(int argc, char *argv[]) {

// int client_fd[LISTENQ],clientnum=0;; struct sockaddr_in server_addr; struct sockaddr_in client_addr; int sin_size,portnumber;

char hello[]=\

int thr_id; /* thread ID for the newly created thread */ pthread_t p_thread; /* thread's structure int new_fd=0;

memset(client,0,sizeof(client)); if(argc!=1) { fprintf(stderr,\ exit(1);

}

/* 服务器端开始建立 socket 描述符 */

if((sockfd=socket(AF_INET,SOCK_STREAM,0))==-1) { fprintf(stderr,\ exit(1);

}

/* 服务器端填充 sockaddr 结构 */

bzero(&server_addr,sizeof(struct sockaddr_in)); server_addr.sin_family=AF_INET;

server_addr.sin_addr.s_addr=htonl(INADDR_ANY);

server_addr.sin_port=htons(PORT);

*/ }

/* 捆绑 sockfd 描述符 */

if(bind(sockfd,(struct sockaddr *)(&server_addr),sizeof(struct sockaddr))==-1) { }

printf(\服务器监听端口%d...\\n\/* 监听 sockfd 描述符 */ if(listen(sockfd,LISTENQ)==-1) { }

thr_id = pthread_create(&p_thread, NULL, recvandsend, NULL); printf(\欢迎来到聊天室!!!\\n\while(1) { }

close(sockfd); exit(0);

/* 服务器阻塞,直到客户程序建立连接 */ if(maxi>=20) { }

sin_size=sizeof(struct sockaddr_in);

if((new_fd=accept(sockfd,(struct sockaddr *)(&client_addr),&sin_size))==-1) { }

/*fprintf(stderr,\client[maxi++]=new_fd;

printf(\新用户进入聊天室%d\\n\

fprintf(stderr,\exit(1);

printf(\以达到人数上线\\n\continue;

fprintf(stderr,\exit(1);

fprintf(stderr,\exit(1);

4调试分析与测试结果

1.Server端

打开server端

2.客户端打开,新用户登录并输入了地址,昵称

3.服务端显示

百度搜索“77cn”或“免费范文网”即可找到本站免费阅读全部范文。收藏本站方便下次阅读,免费范文网,提供经典小说综合文库Linux课程设计(3)在线全文阅读。

Linux课程设计(3).doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印 下载失败或者文档不完整,请联系客服人员解决!
本文链接:https://www.77cn.com.cn/wenku/zonghe/542190.html(转载请注明文章来源)
Copyright © 2008-2022 免费范文网 版权所有
声明 :本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。
客服QQ: 邮箱:tiandhx2@hotmail.com
苏ICP备16052595号-18
× 注册会员免费下载(下载后可以自由复制和排版)
注册会员下载
全站内容免费自由复制
注册会员下载
全站内容免费自由复制
注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: