資源簡介
北京科技大學自動化學院小學期多人聊天室linux嵌入式系統課程設計,包含課程設計的論文和全部源程序,能夠實現通信聊天,設置管理員,禁言,踢人,發送表情等功能。
代碼片段和文件信息
#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??2020-05-15?13:03??北京科技大學自動化學院小學期聊天室嵌入式系統課程設計\
?????目錄???????????0??2020-05-15?13:03??北京科技大學自動化學院小學期聊天室嵌入式系統課程設計\嵌入式系統課程設計\
?????文件????15169706??2019-06-02?10:37??北京科技大學自動化學院小學期聊天室嵌入式系統課程設計\嵌入式系統課程設計\Cortex-A9教學科研平臺Linux系統實驗指導書V1.3.pdf
?????目錄???????????0??2020-05-15?12:59??北京科技大學自動化學院小學期聊天室嵌入式系統課程設計\嵌入式系統課程設計\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
?????文件?????1070306??2020-05-15?13:03??北京科技大學自動化學院小學期聊天室嵌入式系統課程設計\嵌入式系統課程設計\嵌入式課程設計報告.pdf
?????目錄???????????0??2020-05-15?12:59??北京科技大學自動化學院小學期聊天室嵌入式系統課程設計\嵌入式系統課程設計\往年參考項目\
?????目錄???????????0??2020-05-15?12:59??北京科技大學自動化學院小學期聊天室嵌入式系統課程設計\嵌入式系統課程設計\往年參考項目\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
............此處省略3個文件信息
- 上一篇:數據之美-Toby+Segaran
- 下一篇:基于51單片機的水溫控制系統
評論
共有 條評論