- 1、本文档共10页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
SOCKET络编程:Linux下实现聊天室
实 验 报 告
课程名称: 网络应用软件开发技术 实验项目: 三、SOCKET网络编程:Linux下实现聊天室 姓 名: 专 业: 网络工程 班 级: 学 号:
计算机科学与技术学院
实验教学中心
2014 年 4 月 23 日
实验项目名称:三、SOCKET网络编程:Linux下实现聊天室
一、实验目的
1、掌握套接字编程的基本原理
2、熟悉linux下网络编程
3.实现聊天室多客户端信息交流
二、实验内容
在linux编写聊天室客户服务器程序
三、实验用设备仪器及材料
网络实验室 虚拟机
实验代码
//--------------------------------server.c--------------------------------------------------
//包含工程所需的头文件
#includestdio.h #includestdlib.h #includesys/types.h //数据类型定义
#includesys/stat.h #includenetinet/in.h //定义数据结构sockaddr_in
#includesys/socket.h //提供socket函数及数据结构
#includestring.h #includeunistd.h #includesignal.h
#includesys/ipc.h #includeerrno.h #includesys/shm.h #includetime.h
#define PERM S_IRUSR|S_IWUSR
#define MYPORT 3490 //宏定义定义通信端口
#define BACKLOG 10 //宏定义,定义服务程序可以连接的最大客户数量
#define WELCOME |----------Welcome to the chat room! ----------| //宏定义,当客户端连接服务端时,想客户发送此欢迎字符串
//转换函数,将int类型转换成char *类型
void itoa(int i,char*string)
{
int power,j;
j=i;
for(power=1;j=10;j/=10)
power*=10;
for(;power0;power/=10)
{
*string++=0+i/power;
i%=power;
}
*string=\0;
}
//得到当前系统时间
void get_cur_time(char * time_str)
{
time_t timep;
struct tm *p_curtime;
char *time_tmp;
time_tmp=(char *)malloc(2);
memset(time_tmp,0,2);
memset(time_str,0,20);
time(timep);
p_curtime = localtime(timep);
strcat(time_str, ();
itoa(p_curtime-tm_hour,time_tmp);
strcat(time_str,time_tmp);
strcat(time_str,:);
itoa(p_curtime-tm_min,time_tmp);
strcat(time_str,time_tmp);
strcat(time_str,:);
itoa(p_curtime-tm_sec,time_tmp);
strcat(time_str,time_tmp);
strcat(time_str,));
free(time_tmp);
}
//创建共享存储区
key_t shm_create()
{
key_t shmid;
//shmid = shmget(IPC_PRIVATE,1024,PERM);
if((shmid = shmget(IPC_PRIVATE,1024,PERM)) == -1)
{
fprintf(stderr,Create Share Memory Error:%s\n\a,strerror(errno));
exit(1);
}
return shmid;
}
//端口绑定函数,创建套接字,并绑定到指定端口
int bindPort(unsigned short int port)
{
int sockfd;
struct sock
您可能关注的文档
- PPT大赛策书.doc
- PPT如何制培训案例.ppt.pptx
- Python程入门.pptx
- redis快入门.docx
- RFID在图馆中的应用.ppt
- Red_Ha服务器安装操作系统.ppt
- Rf软件安装明.doc
- QCC汇报之状调查.ppt
- S3C241_LCD控制器控制TFT彩屏接口设计.ppt
- S7-200LC认识及应用.ppt
- 2023年度安全员考试题库检测试题打印附答案详解(达标题).docx
- 2023年度安全员考试题库检测试题打印(实用)附答案详解.docx
- 2023年度安全员考试题库检测试题打印附完整答案详解【名师系列】.docx
- 2023年度安全员考试题库检测试题打印及答案详解【考点梳理】.docx
- 2023年度安全员考试题库检测试题打印附完整答案详解【各地真题】.docx
- 2023年度安全员考试题库检测试题打印附参考答案详解【完整版】.docx
- 2023年度安全员考试高分题库含答案详解(精练).docx
- 2023年度安全员考试高分题库及参考答案详解【能力提升】.docx
- 2023年度安全员考试高分题库附答案详解【典型题】.docx
- 2023年度安全员考试高分题库及参考答案详解(培优B卷).docx
文档评论(0)