• 大小: 13.88MB
    文件类型: .zip
    金币: 2
    下载: 1 次
    发布日期: 2023-07-21
  • 语言: C/C++
  • 标签: 课程设计  

资源简介

北京科技大学聊天室嵌入式系统课程设计,题目为多人聊天室,使用linux的c语言开发,包含源程序及报告

资源截图

代码片段和文件信息

#include “tcp_net_socket.h“   //用于初始化操作
int tcp_init()  
{

int sfd = socket(AF_INET SOCK_STREAM 0);     //创建套接字

if(sfd == -1)

{

perror(“socket“);

return -1;

}
int ret;
struct sockaddr_in serveraddr;
memset(&serveraddr0sizeof(struct sockaddr));
serveraddr.sin_family = AF_INET;
serveraddr.sin_port = htons(SERV_PORT);
serveraddr.sin_addr.s_addr = htonl(INADDR_ANY);
ret = bind(sfd (struct sockaddr*)&serveraddr sizeof(struct sockaddr));
if(ret == -1)
{
perror(“bind“);
return -1;
}
ret = listen(sfd10);           //监听它,并设置允许最大的连接数为10个
if(ret == -1)

{

perror(“listen“);

close(sfd);

return -1;

}

return sfd;

}
//用于服务器的接收

int tcp_accept(int sfd)

{

struct sockaddr_in clientaddr;

memset(&clientaddr 0 sizeof(struct sockaddr));

int addrlen = sizeof(struct sockaddr);

//sfd接受客户端的连接,并创建新的socket为new_fd,将请求连接的客户端的ip、port保存在结构体clientaddr中

int new_fd = accept(sfd (struct sockaddr*)&clientaddr &addrlen);       

if(new_fd == -1)

{

perror(“accept“);

close(sfd);

return -1;

}
printf(“%s %d success connet...\n“ 
inet_ntoa(clientaddr.sin_addr)ntohs(clientaddr.sin_port));
return new_fd;
}
//用于客户端的连接

int tcp_connect(const char* ip)

{

int ret;

int sfd = socket(AF_INET SOCK_STREAM 0);     //申请新的socket

if(sfd == -1)

{

perror(“socket“);

return -1;

}

struct sockaddr_in serveraddr;



memset(&serveraddr 0sizeof(struct sockaddr));

serveraddr.sin_family = AF_INET;

serveraddr.sin_port = htons(SERV_PORT);

serveraddr.sin_addr.s_addr = inet_addr(ip);    

ret = connect(sfd (struct sockaddr*)&serveraddr sizeof(struct sockaddr));       //将sfd连接至指定的服务器网络地址 serveraddr

if(ret == -1)

{

perror(“connect“);

close(sfd);

return -1;

}

return sfd;

}

//用于信号处理,让服务器在按下Ctrl+c或Ctrl+\时不会退出

void signalhandler(void)

{

sigset_t sigSet;

sigemptyset(&sigSet);

sigaddset(&sigSetSIGINT);

sigaddset(&sigSetSIGQUIT);

sigprocmask(SIG_BLOCK&sigSetNULL);

}

//用于将密码数字转换为*

int mygetch( )

{

struct termios oldt

newt;

int ch;

tcgetattr( STDIN_FILENO &oldt );

newt = oldt;

newt.c_lflag &= ~( ICANON | ECHO );

tcsetattr( STDIN_FILENO TCSANOW &newt );

ch = getchar();

tcsetattr( STDIN_FILENO TCSANOW &oldt );

return ch;

}

//获取当前时间 

int gettime()

{

time_t rawtime;

struct tm * timeinfo;

time ( &rawtime );

timeinfo = localtime ( &rawtime );

printf ( “%s“asctime (timeinfo) );

}

//获取当前时间   指针 用于消息记录

char* nowtime()

{

time_t rawtime;

struct tm * timeinfo;

time ( &rawtime );

timeinfo = localtime ( &rawtime );

return asctime (timeinfo);

}

//清除scanf后的缓存  回车

void SCAN_N()

{

char ch;

while((getchar()) != ‘\n‘ && ch != EOF);

}

int Get_time(void)//六位数组

{

/* int *temp =p; */

time_t now ;

struct

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----
     目录           0  2019-06-02 10:50  嵌入式系统课程设计\
     文件    15169706  2019-06-02 10:37  嵌入式系统课程设计\Cortex-A9教学科研平台Linux系统实验指导书V1.3.pdf
     目录           0  2019-06-02 10:37  嵌入式系统课程设计\TCP多人聊天室\
     文件       69268  2019-06-02 10:37  嵌入式系统课程设计\TCP多人聊天室\client1.c
     文件       18201  2019-06-02 10:37  嵌入式系统课程设计\TCP多人聊天室\server1.c
     文件        2813  2019-06-02 10:37  嵌入式系统课程设计\TCP多人聊天室\tcp_net_socket.h
     文件       28174  2019-06-02 10:34  嵌入式系统课程设计\TCP连接.vsdx
     文件       49563  2019-06-02 10:37  嵌入式系统课程设计\client.c
     文件       47929  2019-06-02 10:37  嵌入式系统课程设计\client.txt
     文件       65153  2019-06-02 10:37  嵌入式系统课程设计\client1.c
     文件       19990  2019-06-02 10:34  嵌入式系统课程设计\server.c
     文件       19475  2019-06-02 10:34  嵌入式系统课程设计\server.txt
     文件       19475  2019-06-02 10:34  嵌入式系统课程设计\server1.c
     文件        2880  2019-06-02 10:34  嵌入式系统课程设计\tcp_net_socket.h
     文件      144260  2019-06-02 10:34  嵌入式系统课程设计\嵌入式系统设计与实现讲义.pdf
     文件      220229  2019-06-02 10:34  嵌入式系统课程设计\嵌入式系统设计与实现课程设计报告模板.docx
     文件     1230364  2019-06-02 10:50  嵌入式系统课程设计\嵌入式课程设计报告.pdf
     目录           0  2019-06-02 10:37  嵌入式系统课程设计\往年参考项目\
     目录           0  2019-06-02 10:37  嵌入式系统课程设计\往年参考项目\chatroom\
     文件        7168  2019-06-02 10:37  嵌入式系统课程设计\往年参考项目\chatroom\Thumbs.db
     文件        3989  2019-06-02 10:37  嵌入式系统课程设计\往年参考项目\chatroom\chat.h~
     文件        3989  2019-06-02 10:37  嵌入式系统课程设计\往年参考项目\chatroom\chath.txt
     文件       14334  2019-06-02 10:37  嵌入式系统课程设计\往年参考项目\chatroom\client
     文件        9157  2019-06-02 10:37  嵌入式系统课程设计\往年参考项目\chatroom\client.c
     文件        9153  2019-06-02 10:37  嵌入式系统课程设计\往年参考项目\chatroom\client.c~
     文件         132  2019-06-02 10:37  嵌入式系统课程设计\往年参考项目\chatroom\makefile~
     文件       21589  2019-06-02 10:37  嵌入式系统课程设计\往年参考项目\chatroom\server
     文件       19064  2019-06-02 10:37  嵌入式系统课程设计\往年参考项目\chatroom\server.c
     文件       19058  2019-06-02 10:37  嵌入式系统课程设计\往年参考项目\chatroom\server.c~
     文件         201  2019-06-02 10:37  嵌入式系统课程设计\往年参考项目\chatroom\userinfo
     文件      399128  2019-06-02 10:37  嵌入式系统课程设计\往年参考项目\多人聊天室.pptx
............此处省略2个文件信息

评论

共有 条评论