资源简介
本系统是在linux平台下,用c语言编写的非图形界面的简单的QQ聊天系统。它的主要模块有注册、登陆、私聊、群聊、查看聊天记录、查看在线用户。
代码片段和文件信息
//#include “main.h“
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
int sock_fd;
void err_sys()
{
perror(““);
exit(1);
}
int rev_keyboard(void)
{
char buf[1024];
bzero(buf1024);
while(fgets(buf1024stdin) != NULL) {
if(write(sock_fdbufstrlen(buf)+1) == -1)
err_sys();
}
return 0;
}
int rev_sock(void)
{
char buf[1024];
bzero(buf1024);
int len;
while((len = read(sock_fdbuf1024)) != -1) {
if (len == 0) exit(1);
printf(“%s“buf);
bzero(buf1024);
}
}
int main(void)
{
char ip[16]port[5];
int tmp;
int addr_len;
char buf[1024];
pthread_t thrd1thrd2;
struct sockaddr_in addr;
bzero(port5);
printf(“Enter server ip: “);
scanf(“%s“ip);
printf(“Enter server port:“);
scanf(“%s“port);
if((sock_fd = socket(AF_INETSOCK_STREAM0)) == -1)
err_sys();
addr.sin_family = AF_INET;
tmp = atoi(port);
addr.sin_port = htons(tmp);
inet_pton(AF_INETip&addr.sin_addr);
addr_len = sizeof(addr);
if (connect(sock_fd(struct sockaddr *)&addraddr_len) == -1)
err_sys();
printf(“welcome to chatroom! Enter hlep!\n\n“);
pthread_create(&thrd1NULL(void *)rev_keyboardNULL);
pthread_create(&thrd2NULL(void *)rev_sockNULL);
pthread_join(thrd1NULL);
pthread_join(thrd2NULL);
close(thrd2);
close(thrd1);
return 0;
}
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 1428 2009-06-02 17:18 chat\client.c
文件 370 2009-06-01 20:58 chat\group.c
文件 388 2009-06-02 17:07 chat\help.c
文件 355 2009-05-31 21:18 chat\list.c
文件 492 2009-06-02 17:26 chat\login.c
文件 750 2009-06-01 20:09 chat\main.h
文件 661 2009-06-02 17:06 chat\Makefile
文件 290 2009-06-02 17:04 chat\parse.c
文件 36 2009-06-04 19:25 chat\passwd
文件 1652 2009-05-31 21:18 chat\README
文件 502 2009-06-02 17:07 chat\regist.c
文件 3447 2009-06-04 19:20 chat\server.c
文件 313 2009-06-02 17:03 chat\showuser.c
文件 391 2009-06-02 17:03 chat\single.c
目录 0 2009-07-14 15:21 chat
----------- --------- ---------- ----- ----
11075 15
评论
共有 条评论