- 1、本文档共14页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
linux下的聊天程序
操作系统
实 验 报 告
课程名称 操作系统
实验学期 2011 至 2012 学年 第 一 学期
学生所在系部 通信工程系
年级 2008 专业班级 010812班
学生姓名 路遥 学号
任课教师 陈晨
实验成绩
通信工程系制
课前资料:
参考资料查阅工具:man,如man ls,man make;
C编写手册,机器上“linux c参考”;
Shell编写手册,机器上“linux shell参考“;
Makefile编写手册,机器上“makefile参考“;
Awk编写手册,机器上“awk参考“;
经典书籍,学习linux,unix的最佳书籍“Linux,unix shell编程指南“
实验题目:
熟悉linux操作系统下最简单实用的通信程序socket.最好能全部完成,否则按照完成情况打分。
实验目的:
通过对socket的编写,可以了解linux下最简单实用的进程通信方法,为后续信号灯、消息队列等学习奠定基础。
实验设备及环境:
1. 硬件设备:PC机一台
2. 软件环境:安装Linux操作系统,并安装相关的程序开发环境,如C \C++\tsh\bsh等编程语言环境。
实验内容及要求:
(1)用C语言编程实现linux简单的聊天室功能。
用户程序命名为client.c;服务器程序命名为server.c
绑定端口等信息见实验方法内容;
要求client可以通过socket连接server
在client,提示输入服务器ip
若连接server 的socket建立成功,返回提示信息
Client输入的聊天内容在client端(多个client端)和server端同时显示;
多个client可同时接入server,进入聊天室,最多支持20个client;
Client端输入quit退出连接,server端提示client退出。
可选择使用多线程实现多客户端;
其他细节见输出结果;
五、实验方法内容
需要的头文件
#includestdlib.h
#includestdio.h
#includestring.h
#includeerrno.h
#includenetdb.h
#includesys/types.h
#includenetinet/in.h
#includesys/socket.h
#includesys/wait.h
#includeunistd.h
#includepthread.h
主要的常量变量
客户端:
#define TRUE 1
#define PORT 5000
int quit=0; //quit表示是否用户确定退出
服务器端:
#define MAXLINE 1000 //在一条消息中最大的输出字符数
#define LISTENQ 20 //最大监听队列
#define PORT 5000 //监听端口
#define MAXFD 20 //最大的在线用户数量
void *get_client(void *);
int i,maxi=-1;//maxi表示当前client数组中最大的用户的i值
int client[MAXFD];
主要模块
客户端:
int main(void)
void *get_server(void* sockfd)
//get_server函数,用于接受服务器转发的消息
服务器端:
int main()
void *get_client(void *sockfd) //运行get_client函数,处理用户请求
六.代码
考虑大家没做过,给几个例子:
参考socket编程.pdf
/******* 客户端程序 client.c ************/
#include stdlib.h
#include stdio.h
#include errno.h
#include string.h
#include netdb.h
#include sys/types.h
#include netinet/in.h
#include sys/socket.h
#define TRUE 1
#define PORT 5000
static int sockfd
您可能关注的文档
- gcc參数详解.doc
- GCL黃金公司投资说明书.doc
- GIC證书课程试题答案.doc
- GJZ、GYZ板式橡膠支座规格系列选用参数.doc
- GKZ高空作業车液压和电气控制系统设计摘要+目录.doc
- GL-1標段工程桥梁风险评估.doc
- GM7-D_智能測控装置项目需求及总体详细设计.doc
- GIS碩士点目录.doc
- GJB127A-2006裝备质量管理统计方法应用指南.doc
- GMAT考試的时间分配方法.doc
- 2025年网络文学平台版权运营模式创新与版权保护体系构建.docx
- 数字藏品市场运营策略洞察:2025年市场风险与应对策略分析.docx
- 全球新能源汽车产业政策法规与市场前景白皮书.docx
- 工业互联网平台安全标准制定:安全防护与合规性监管策略.docx
- 剧本杀剧本创作审核标准2025年优化与行业自律.docx
- 2025年新能源电动巡逻车在城市安防中的应用对城市环境的影响分析.docx
- 全渠道零售案例精选:2025年行业创新实践报告.docx
- 2025年网约车司乘纠纷处理机制优化与行业可持续发展报告.docx
- 2025年宠物烘焙食品市场法规政策解读:合规经营与风险规避.docx
- 2025年宠物行业数据安全监管政策影响分析报告.docx
文档评论(0)