资源简介
北京科技大学聊天室嵌入式系统课程设计,题目为多人聊天室,使用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个文件信息
- 上一篇:dsp
- 下一篇:牛津词典TXT文件, 可轻松转数据库
评论
共有 条评论