欢迎来到天天文库
浏览记录
ID:38380311
大小:211.00 KB
页数:14页
时间:2019-06-11
《通信工程系制》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、通信工程系制课前资料:l参考资料查阅工具:man,如manls,manmake;lC编写手册,机器上“linuxc参考”;lShell编写手册,机器上“linuxshell参考“;lMakefile编写手册,机器上“makefile参考“;lAwk编写手册,机器上“awk参考“;l经典书籍,学习linux,unix的最佳书籍“Linux,unixshell编程指南“1、实验题目:熟悉linux操作系统下最简单实用的通信程序socket.最好能全部完成,否则按照完成情况打分。2、实验目的:通过对socket的编写,可以了解linux下最
2、简单实用的进程通信方法,为后续信号灯、消息队列等学习奠定基础。3、实验设备及环境:1.硬件设备:PC机一台2.软件环境:安装Linux操作系统,并安装相关的程序开发环境,如CC++tshbsh等编程语言环境。4、实验内容及要求:(1)用C语言编程实现linux简单的聊天室功能。n用户程序命名为client.c;服务器程序命名为server.cn绑定端口等信息见实验方法内容;n要求client可以通过socket连接serveru在client,提示输入服务器ipu若连接server的socket建立成功,返回提示信息uClien
3、t输入的聊天内容在client端(多个client端)和server端同时显示;u多个client可同时接入server,进入聊天室,最多支持20个client;uClient端输入quit退出连接,server端提示client退出。u可选择使用多线程实现多客户端;u其他细节见输出结果;五、实验方法内容1.需要的头文件#include#include#include#include#include#include#
4、include#include#include#include#include2.主要的常量变量客户端:#defineTRUE1#definePORT5000intquit=0;//quit表示是否用户确定退出服务器端:#defineMAXLINE1000//在一条消息中最大的输出字符数#defineLISTENQ20//最大监听队列#definePORT5000//监听端口#defineMAXFD20//最大的在
5、线用户数量void*get_client(void*);inti,maxi=-1;//maxi表示当前client数组中最大的用户的i值intclient[MAXFD];3.主要模块客户端:intmain(void)void*get_server(void*sockfd)//get_server函数,用于接受服务器转发的消息服务器端:intmain()void*get_client(void*sockfd)//运行get_client函数,处理用户请求六.代码考虑大家没做过,给几个例子:参考socket编程.pdf/*******客户
6、端程序client.c************/#include#include#include#include#include#include#include#include#include#include#include#defineTRUE1#definePORT5000staticints
7、ockfd;voidrecvfromserver()//接受服务器消息线程入口函数{charmes[1024];intnbytes=0;while(1){memset(mes,0,sizeof(mes));nbytes=read(sockfd,mes,sizeof(mes));if(nbytes>0){printf("%s",mes);mes[nbytes]=' ';}}pthread_exit(NULL);}intmain(intargc,char*argv[]){//intsockfd;charbuffer[1024];st
8、ructsockaddr_inserver_addr;structhostent*host;intportnumber,nbytes;charstrhost[16];charclientname[20];charmes[
此文档下载收益归作者所有