仪器网(yiqi.com)欢迎您!

| 注册 登录
网站首页-资讯-专题- 微头条-话题-产品- 品牌库-搜索-供应商- 展会-招标-采购- 社区-知识-技术-资料库-方案-产品库- 视频

问答社区

求即时通讯软件源代码Z好是C语言写的,想学习一下,感谢各位

xbnrkjgf 2016-01-25 11:12:49 317  浏览
  •  

参与评论

全部评论(1条)

  • 762488155 2016-01-26 00:00:00
    #pragma comment(lib,"ws2_32.lib") #include<winsock2.h> #include<stdio.h> #include<string.h> #include<windows.h> #include<PROCESS.H> void _cdecl get_keyboard_input(void * param) { SOCKET sock =(SOCKET)param; while(1) { char buf[1024]; gets(buf); int sByte = send(sock,buf,strlen(buf),0); if(sByte == SOCKET_ERROR) { printf("send() failed:%d\n",WSAGetLastError()); } } } int main() { WSADATA wsadata; int err = WSAStartup(WINSOCK_VERSION,&wsadata); if(err != 0) { printf("WSAStartup() failed :%d\n",WSAGetLastError()); return -1; }   SOCKET sock = socket(AF_INET,SOCK_STREAM,0); if(sock == INVALID_SOCKET) { printf("socket() failed:%d\n",WSAGetLastError()); WSACleanup(); return -1; }   sockaddr_in serveraddr; serveraddr.sin_family = AF_INET; serveraddr.sin_port = htons(27015); serveraddr.sin_addr.S_un.S_addr = inet_addr("127.0.0.1");   err=connect(sock,(sockaddr *)&serveraddr,sizeof(serveraddr)); if(err == INVALID_SOCKET) { printf("connect() failed:%d\n",WSAGetLastError()); closesocket(sock); WSACleanup(); return -1; } _beginthread(get_keyboard_input,0,(void*)sock); Sleep(1000);   char rbuf[1024]; while(1) { memset(rbuf,0,1024);   int rByte =recv(sock,rbuf,1024,0); if(rByte == SOCKET_ERROR) { printf("recv() failed:%d\n",WSAGetLastError()); closesocket(sock); WSACleanup(); return -1; } if(rByte == 0) { printf("Connection is closed.\n"); break; } printf("TCP recv DATA:%s\n",rbuf); Sleep(1000); }   closesocket(sock); WSACleanup(); return 0; } 服务端: #pragma comment(lib,"ws2_32.lib") #include<winsock2.h> #include<stdio.h> #include<string.h> #define MAX_CLIENT_NUM  63 int main() { WSADATA wsadata; int err = WSAStartup(WINSOCK_VERSION,&wsadata); if(err != 0) { printf("WSAStartup() failed :%d\n",WSAGetLastError()); return -1; }   SOCKET sock = socket(AF_INET,SOCK_STREAM,0); if(sock == INVALID_SOCKET) { printf("socket() failed:%d\n",WSAGetLastError()); WSACleanup(); return -1; }   sockaddr_in localaddr; localaddr.sin_family = AF_INET; localaddr.sin_port = htons(27015); localaddr.sin_addr.S_un.S_addr = htonl(INADDR_ANY);   err = bind(sock,(sockaddr *)&localaddr,sizeof(localaddr)); if(err == INVALID_SOCKET) { printf("bind() failed:%d\n",WSAGetLastError()); closesocket(sock); WSACleanup(); return -1; }   err=listen(sock,5); if(err == INVALID_SOCKET) { printf("listen() failed:%d\n",WSAGetLastError()); closesocket(sock); WSACleanup(); return -1; } SOCKET client[MAX_CLIENT_NUM]; for(int i = 0;i<MAX_CLIENT_NUM;i++) { client[i] = INVALID_SOCKET; }   fd_set rset,allset; FD_ZERO(&allset); FD_SET(sock,&allset);   #define MSG_MAX_SIZE 1024 char buf[MAX_CLIENT_NUM][MSG_MAX_SIZE];   while(1) {   rset = allset; int ret = select(0,&rset,NULL,NULL,NULL); if(ret == SOCKET_ERROR) { printf("select() failed:%ld\n",WSAGetLastError()); break; } if(ret == 0){ continue; }   if(FD_ISSET(sock,&rset)) { sockaddr_in clientaddr; int len = sizeof(clientaddr); SOCKET sockconn = accept(sock,(sockaddr *)&clientaddr,&len); if(sockconn == INVALID_SOCKET) { printf("accept() failed:%d\n",WSAGetLastError()); break; } printf("Client's IP:%s\nClient's Port:%d\n",inet_ntoa(clientaddr.sin_addr),clientaddr.sin_port); for(i=0;i<MAX_CLIENT_NUM;i++) { if(client[i] == INVALID_SOCKET) { client[i] = sockconn; break; } } if(i<MAX_CLIENT_NUM) { FD_SET(sockconn,&allset); }   else{ printf("too many client"); closesocket(sockconn); }   } for(i=0;i<MAX_CLIENT_NUM;i++) { if((client[i]!=INVALID_SOCKET)&&FD_ISSET(client[i],&rset)) { memset(buf[i],0,MSG_MAX_SIZE); int rByte = recv(client[i],buf[i],MSG_MAX_SIZE,0); if(rByte == SOCKET_ERROR) { printf("recv() failed:%d\n",WSAGetLastError()); FD_CLR(client[i],&allset); closesocket(client[i]); client[i] = INVALID_SOCKET; continue; } if(rByte == 0) { printf("Connection is closed. "); FD_CLR(client[i],&allset); closesocket(client[i]); client[i] = INVALID_SOCKET; continue; }      for(int j=0;j<MAX_CLIENT_NUM;j++) { if((client[j]!=INVALID_SOCKET) ) {        int sByte = send(client[j],buf[i],1024,0); if(sByte == SOCKET_ERROR) { printf("send() failed:%d\n",WSAGetLastError()); } } } printf("TCP recv[%d]DATA:%s\n",rByte,buf[i]); } } } closesocket(sock); WSACleanup(); return 0; }

    赞(19)

    回复(0)

    评论

获取验证码
我已经阅读并接受《仪器网服务协议》

热门问答

求即时通讯软件源代码Z好是C语言写的,想学习一下,感谢各位
 
2016-01-25 11:12:49 317 1
求C语言编写的计时器源代码
急需一打字游戏的计时器源代码,C语言编写。
2013-09-04 01:38:24 244 2
刚学习数据库,想练习一下SQL语言,下载什么软件?
 
2014-04-09 03:38:14 341 3
c语言写的计时器
 
2016-09-10 21:55:59 421 1
全国Z好的即时通讯软件是哪个?
 
2017-02-15 07:00:52 266 3
苏州这边哪里可以学习平面设计的软件的?Z近想学习一下软件工作要用?
 
2017-12-14 00:26:47 291 2
想从事数据分析工作,学什么软件或语言Z好
 
2017-08-15 00:18:27 355 3
想从事数据分析工作,学什么软件或语言Z好
 
2016-08-09 00:54:44 310 4
想从事数据分析工作,学什么软件或语言Z好
 
2017-09-28 02:07:15 372 1
易语言写即时通讯软件(类似QQ)~ 求个源码
 
2016-10-21 11:53:24 381 2
介绍一个Z好的 Z好的开源即时通讯软件
大家好,请问有没人喜欢做IM开发的,请推荐一个Z好的开源即时通讯软件,谢谢。... 大家好,请问有没人喜欢做IM开发的,请推荐一个Z好的开源即时通讯软件,谢谢。 展开
2011-01-07 00:15:56 402 4
Z好用的C语言编程软件是哪个
 
2016-12-13 17:13:17 398 1
学习LabVIEW对c语言的要求多高
 
2013-08-11 12:58:52 304 4
求C语言计时器的例子
我想为执行某个功能建立一个计时器。比如说,当A功能开始时,A计时器开始计时,当A功能结束时,A计时器结束计时,将A执行的时间返回给我,这样的计时器该怎么写?
2011-11-29 00:21:26 586 2
学C语言用哪个编程软件Z好? 急
有的话,请E--mial给我! 252037697,谢谢了
2012-02-06 06:55:12 348 4
急啊!!!!!!!题目是写一个温度传感器的C语言程序
传感器由电位器模拟电位器连接于模数转换器通道1(PAD0)。此模数转换器ATD0是10bits并在0-2.55V的电压之间变化。当外界温度0度时电压为0。温度102.3度时电压2.55v。Z后把摄氏温度输... 传感器由电位器模拟 电位器连接于模数转换器通道1(PAD0)。此模数转换器ATD0是10bits 并在0-2.55V的电压之间变化。当外界温度0度时电压为0。温度102.3度时电压2.55v。Z后把摄氏温度输出在LCD上每秒温度刷新一次 用(tempo_n(xx))) 问题补充: 要通过hc12芯片 展开
2011-04-06 15:57:57 355 2
Z安全的企业即时通讯软件?
 
2016-12-15 04:57:36 331 3
C语言编程是在什么软件上编
 
2016-11-15 07:26:57 454 2
企业即时通讯软件哪家好?
 
2016-06-28 12:19:20 317 1
c语言编程软件vc6.0怎么打开软件
 
2013-10-14 07:18:36 467 1

5月突出贡献榜

推荐主页

最新话题