当前位置:  技术问答>linux和unix

写了一个linux下即使聊天程序,聊天部分出现一个问题

    来源: 互联网  发布时间:2017-04-20

    本文导语:  刚学linux编程不久,就急着上手写点东西,现在写到对话部分,群聊是没问题,就私聊遇到问题,这里将输入的首字母作为区分,‘#’为群聊,‘$’为私聊,以下是服务端和客户端部分代码,  int  speakall(LinkList L,c...

刚学linux编程不久,就急着上手写点东西,现在写到对话部分,群聊是没问题,就私聊遇到问题,这里将输入的首字母作为区分,‘#’为群聊,‘$’为私聊,以下是服务端和客户端部分代码,
 int  speakall(LinkList L,char buf[],int size)//群聊函数。链表节点为存储用户的信息结构体
 {
    
     LinkList p;
     int socket;
     if(!L)
         return -1;
     p=L->next;
     while(p!=NULL)
     {
       if(p->user.state==1)
        {
            socket=p->user.mysockfd;
            sendto_client(&socket,buf,size);
        }
         p=p->next;
     }
 }
 int chat_server(int *socket,char name[])
 {
    int i;
    int len;
    int running=1,recvsize;
    
    char filepath[60];
    int filesocket;
    
    struct tm *pt;
    time_t t;
    char option;
    char buf1[MAX_RECVSIZE];
    char buf2[MAX_TEXTSIZE];
    char id[10];
    int destsocket;
 
   memset(buf2,0,MAX_TEXTSIZE);
    sprintf(buf2,"%s 上线 !n",name);
    speakall(L,buf2,strlen(buf2));
 
   while(1)
       {
             memset(id,0,10);
             memset(buf1,0,MAX_RECVSIZE);
             memset(buf2,0,MAX_TEXTSIZE);
             memset(filepath,0,60);
 
            if((recvsize=recv(*socket,buf1,MAX_RECVSIZE,0))tm_hour,pt->tm_min,pt->tm_sec,buf1);
                             speakall(L,buf2,strlen(buf2));
                             break;                         
                         }
                      case '$'://私聊
                          {
                              time(&t);
                              pt=localtime(&t);
                              
                              for(i=1;((buf1[i]!=' ') && (itm_hour,pt->tm_min,pt->tm_sec,buf1);
                               
                               sendto_client(&destsocket,buf2,strlen(buf2)+1);
                               break;
                          }
                      case '@' :
                          {
                             ..........................
                          }
                 }
       }
 
}
 客户端省略部分代码
 void pthread_chat()//此处开辟线程是为了收集来自服务器的信息,并发送给另个进程显示信息
{
    int len;
    int chat_fd;
    char buf[MAX_TEXT];
    char flag;
    running=1;
    int i;
    char socket[6];
    memset(socket,0,6);
    char filename[50];
    if((chat_fd=open(chatdata_path,O_APPEND |O_WRONLY,0666))

    
 
 

您可能感兴趣的文章:

  • Linux音频, Linux下能否实现 实时语音聊天 ?
  • 在linux下怎样聊天
  • Linux下怎么上语音聊天室~!?
  • 有没有哪位知道linux下有没有什么可视聊天的工具
  • Linux下聊天工具的设计语言选择
  • Linux聊天系统 WolfChat
  • Linux即时聊天程序 Empathy
  • 想在开发一个Linux下的聊天工具,用Java好不好?
  • 在linux下怎样用gaim与qq聊天?
  • 请问有没有for linux和windows的聊天软件?
  • linux下大家都用什么聊天软件,哪个用的人多?
  • 请问一下,怎么将QQ用在LInux中与用Windows的同学聊天?
  • 求助 关于Linux下Socket的聊天程序
  • linux下聊天工具
  • linux下面有类似QQ的聊天软件吗?
  • 一个简单的linux课程设计--《基于socket聊天室的设计与实现》 帮忙分析下~
  • linux中通过管道实现qq的聊天功能,用到了线程
  • linux聊天室程序//求改错
  • linux 平台下socket聊天程序,无法运行。高手指点:
  • 是否有人知道linux启动时最先出现的小企鹅图标在那儿出现的?
  • 新用linux的GDB, 版本是出现6.3.3.0,出现奇怪问题, 可能是环境设置的问题, 大人帮忙
  • FTP匿名登陆 LINUX 出现错误 linux FTP 550 permission
  • 传utf-8的网页到linux出现乱码
  • XP下安装Linux10 ,启动后没有出现Linux的入口,而是直接进入了XP ...
  • 用虚拟机装完LINUX为什么总会出现如图那的提示?
  • 啊??Linux按章出现问题了啊
  • linux服务器,大磁盘挂载分区,不定期出现“只读”现象
  • 用putty登linux出现如下问题
  • 用Vmware虚拟linux出现乱码
  • 安装Linux出现的问题。。
  • 第一次装linux5.0,光盘启动后按enter就出现Uncompressing Linux... Ok, booting the kernel.谁知道阿
  •  
    本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
    本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • 如何在启动LINUX时,不加载某些模块?比如声音部分。网卡部分。
  • 关于Linux中的QoS部分源码分析
  • linux内核的网络部分
  • 不会汇编语言,想学习Linux内核网络部分的代码可以嘛?
  • 求教,linux内核代码关于网络部分的浅析
  • linux下如何用C实现对嵌入式开发板AD部分寄存器的读取?
  • 请问linux登录部分的源码在哪里?
  • Linux源代码中的ntpclient部分在哪儿个文件中?
  • 安装好redhat linux7.3以后,为什么有部分的菜单无法显示
  • 散完全部分请教:linux下面有没有类似windows下面rasdial的命令
  • linux c 对文件部分内容删除 谁做过,给俺提示一下,谢谢
  • 请问在Linux下安装新程序,是否会对系统其余部分的运行造成影响?
  • linux下的java程序,到windows下看注释部分是乱码???
  • 是否绝大部分linux发行版都预装有pppd程序?
  • linux下块设备驱动中对于坏扇区的处理是那个部分?
  • 求LINUX部分文件名匹配删除命令
  • Linux 的命令 ls 只列出部分目录或是文件
  • linux 命令执行结束后,想查看结果,但部分结果已经被覆盖,如何查看?
  • 有没有研究linux1.0左右版本的书?我主要想看看网络部分的实现,版本越早越好
  • 有谁知道redhat linux服务器可以给tomcat保留部分内存不被其他进程使用吗?
  • linux c/c++ IP字符串转换成可比较大小的数字
  • 在win分区上安装linux和独立分区安装linux有什么区别?可以同时安装吗?(两个linux系统)
  • linux哪个版本好?linux操作系统版本详细介绍及选择方案推荐
  • 在虚拟机上安装的linux上,能像真的linux系统一样开发linux程序么?
  • secureCRT下Linux终端汉字乱码解决方法
  • 我重装window后,把linux的引导区覆盖了,进不了linux怎么办?急啊,望热心的人帮助 (现在有linux的盘)
  • Linux c字符串中不可打印字符转换成16进制
  • 安装vmware软件,不用再安装linux系统,就可以模拟linux系统了,然后可以在其上学习一下LINUX下的基本操作 了?
  • Linux常用命令介绍:更改所属用户群组或档案属性
  • 红旗Linux主机可以通过127.0.0.1访问,但如何是连网的Win2000机器通过Linux的IP去访问Linux
  • linux命令大全详细分类介绍及常用linux命令文档手册下载


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,