⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 qcc.c

📁 本人在5年前做的一个unix/aix下的一个聊天软件
💻 C
字号:
#include	<stdio.h>#include <sys/types.h>    #include  <netinet/in.h>#include <sys/socket.h>#include <arpa/inet.h>#include <string.h>#include <sys/select.h>#define max(x,y) (((x)>(y))?(x):(y))#define ip1 "10.100.0.5"#define ip0 "10.100.0.9"int n,m;int maxfd;main(){struct sockaddr_in lo,se;int sock,socklen;char c;char msg[255];fd_set infds;socklen=sizeof(struct sockaddr_in);sock=socket(AF_INET,SOCK_DGRAM,0);if(sock<0){   printf("连接失败\n");   exit(1);}memset(&lo,0,socklen);lo.sin_family=AF_INET;lo.sin_port=htons(6800);if(inet_pton(AF_INET,ip0,&lo.sin_addr)<=0){   printf("本方IP地址错误\n");   exit(2);}memset(&se,0,socklen);se.sin_family=AF_INET;se.sin_port=htons(6800);if(inet_pton(AF_INET,ip1,&se.sin_addr)<=0){   printf("对方IP地址错误\n");   exit(3);}if(bind(sock,(struct sockaddr *)&lo,socklen)<0){    printf("不能运行两个QQ,或端口出错 \n");    exit(0);}if(connect(sock,&se,socklen)<0){printf("连接失败\n");exit(0);}for(;;){    FD_ZERO(&infds);    FD_SET(fileno(stdin),&infds);    FD_SET(sock,&infds);    maxfd=max(fileno(stdin),sock)+1;    if(select(maxfd,&infds,NULL,NULL,NULL)==-1)       {         printf("多路复用错误\n");         exit(3);         }    if(FD_ISSET(sock,&infds));       {         m=read(sock,msg,256);         if((m==-1)||(m==0))            {              printf("读端口数据出错\n");              exit(0);             }           else            {            msg[m]=0;            printf("对方:%s",msg);           }        }    if(FD_ISSET(fileno(stdin),&infds))        {           if(fgets(msg,255,stdin)==NULL)            {             printf("talk over\n");             exit(0);              }               write(sock,msg,strlen(msg));           }   }}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -