資源簡介
Linuxc聊天室,可群聊可私聊,有兩套代碼,帶有日志記錄功能,一個只可以群聊,另一個群聊私聊都可以,

代碼片段和文件信息
#include??
#include??
#include??
#include??
#include
#include
#include
#include
#include
#include
#define?MAXLINE?512
#define?NAMELEN?20
#define?PORT?8080
int?sockfd;
//發送消息的函數snd
void?snd()
{
????char?name[NAMELEN];
????char?buff[MAXLINE];
????gets(name);
????write(sockfdnamestrlen(name));
????while(1)
????{
????????gets(buff);
????????write(sockfdbuffstrlen(buff));
????????if(strcmp(“bye“buff)==0)
????????{
????????????exit(0);
????????}
????}
}
int?main(int?argcchar?**argv)
{
????pthread_t?thread;
????struct?sockaddr_in?servaddr;
if(argc?!=?2)
{
printf(“usage:?echo?ip\n“);
return?-1;
}
//調用socket函數創建客戶端的套接字
????sockfd=socket(AF_INETSOCK_STREAM0);
????if(sockfd<0)
????{
????????printf(“Socket?create?failed\n“);
????????return?-1;
????}
//初始化服務器端的地址
????servaddr.sin_family=AF_INET;
????servaddr.sin_port=htons(PORT);
????if(inet_aton(argv[1]&servaddr.sin_addr)<0)
????{
????????printf(“inet_aton?error.\n“);
????????return?-1;
????}
//調用connect函數實現與服務器端建立連接
????printf(“Connecting...\n“);
????if(connect(sockfd(struct?sockaddr*)&servaddrsizeof(servaddr))<0)
????{
????????printf(“Connect?server?failed.\n“);
????????return??-1;
????}
//從此處開始程序分做兩個線程
//創建發送消息的線程,調用了發送消息的函數snd
????pthread_create(&threadNULL(void*)(&snd)NULL);
//從此處開始向下為接收消息的線程
????char?buff[MAXLINE];
????int?len;
????while(1)
????{
????????if((len=read(sockfdbuffMAXLINE))>0)
????????{
????????????buff[len]=0;
????????????printf(“\n%s\n\n“buff);
????????}
????}
????return?0;
}
?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----
?????目錄???????????0??2018-06-21?20:08??聊天室\
?????目錄???????????0??2018-06-21?20:08??聊天室\原來\
?????文件????????1881??2018-06-08?19:52??聊天室\原來\ccclinet.c
?????文件????????5727??2018-06-13?09:41??聊天室\原來\ssserver.c
?????目錄???????????0??2018-06-21?20:08??聊天室\改\
?????文件????????1930??2018-06-17?14:53??聊天室\改\ccclinet.c
?????文件????????5372??2018-06-17?15:16??聊天室\改\ssserver.c
- 上一篇:usbtreeview.zip
- 下一篇:鼠標跟隨星星特效
評論
共有 條評論