socket网络编程:linux下实现聊天室

socket网络编程:linux下实现聊天室

ID:9381522

大小:163.00 KB

页数:8页

时间:2018-04-29

socket网络编程:linux下实现聊天室_第1页
socket网络编程:linux下实现聊天室_第2页
socket网络编程:linux下实现聊天室_第3页
socket网络编程:linux下实现聊天室_第4页
socket网络编程:linux下实现聊天室_第5页
资源描述:

《socket网络编程:linux下实现聊天室》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、SOCKET网络编程:Linux下实现聊天室程序介绍:本聊天室程序在Ubuntu下,采用C语言实现,结构为Client/Server结构;服务端程序通过共享存储区存储聊天数据,并发送给每个连接的客户端;服务端程序和客户端程序都是通过父子进程分别负责发送和接收数据的,以避免数据冲撞;需按以下格式调用客户端程序:client.exe服务端主机IP端口号(本程序设定为:3490)用户名(在聊天室中显示的用户名)。程序截图://--------------------------------服务端----------------------------

2、------------------//--------------------------------客户端1:真水无香--------------------------------------//--------------------------------客户端2:蜡笔小新--------------------------------------程序代码如下://--------------------------------server.c----------------------------------------------

3、----//包含工程所需的头文件#include#include#include//数据类型定义#include#include//定义数据结构sockaddr_in#include//提供socket函数及数据结构#include#include#include#include#include#incl

4、ude#include#definePERMS_IRUSR

5、S_IWUSR#defineMYPORT3490//宏定义定义通信端口#defineBACKLOG10//宏定义,定义服务程序可以连接的最大客户数量#defineWELCOME"

6、----------Welcometothechatroom!----------

7、"//宏定义,当客户端连接服务端时,想客户发送此欢迎字符串//转换函数,将int类型转换成char*类型voiditoa(inti,char*string){intpower,j;j=i;

8、for(power=1;j>=10;j/=10)power*=10;for(;power>0;power/=10){*string++='0'+i/power;i%=power;}*string='';}//得到当前系统时间voidget_cur_time(char*time_str){time_ttimep;structtm*p_curtime;char*time_tmp;time_tmp=(char*)malloc(2);memset(time_tmp,0,2);memset(time_str,0,20);time(&timep);p_

9、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(t

10、ime_str,")");free(time_tmp);}//创建共享存储区key_tshm_create(){key_tshmid;//shmid=shmget(IPC_PRIVATE,1024,PERM);if((shmid=shmget(IPC_PRIVATE,1024,PERM))==-1){fprintf(stderr,"CreateShareMemoryError:%sa",strerror(errno));exit(1);}returnshmid;}//端口绑定函数,创建套接字,并绑定到指定端口intbindPort(uns

11、ignedshortintport){intsockfd;structsockaddr_inmy_addr;sockfd=socket(AF_INET

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。