国产三级在线看完整版-内射白嫩大屁股在线播放91-欧美精品国产精品综合-国产精品视频网站一区-一二三四在线观看视频韩国-国产不卡国产不卡国产精品不卡-日本岛国一区二区三区四区-成年人免费在线看片网站-熟女少妇一区二区三区四区

儀器網(yiqi.com)歡迎您!

| 注冊2 登錄
網站首頁-資訊-話題-產品-評測-品牌庫-供應商-展會-招標-采購-知識-技術-社區(qū)-資料-方案-產品庫-視頻

問答社區(qū)

求即時通訊軟件源代碼Z好是C語言寫的,想學習一下,感謝各位

xbnrkjgf 2016-01-25 11:12:49 370  瀏覽
  •  

參與評論

全部評論(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 370 1
求C語言編寫的計時器源代碼
急需一打字游戲的計時器源代碼,C語言編寫。
2013-09-04 01:38:24 297 2
剛學習數(shù)據(jù)庫,想練習一下SQL語言,下載什么軟件?
 
2014-04-09 03:38:14 379 3
c語言寫的計時器
 
2016-09-10 21:55:59 464 1
全國Z好的即時通訊軟件是哪個?
 
2017-02-15 07:00:52 311 3
蘇州這邊哪里可以學習平面設計的軟件的?Z近想學習一下軟件工作要用?
 
2017-12-14 00:26:47 343 2
想從事數(shù)據(jù)分析工作,學什么軟件或語言Z好
 
2017-08-15 00:18:27 395 3
想從事數(shù)據(jù)分析工作,學什么軟件或語言Z好
 
2016-08-09 00:54:44 363 4
想從事數(shù)據(jù)分析工作,學什么軟件或語言Z好
 
2017-09-28 02:07:15 432 1
易語言寫即時通訊軟件(類似QQ)~ 求個源碼
 
2016-10-21 11:53:24 437 2
介紹一個Z好的 Z好的開源即時通訊軟件
大家好,請問有沒人喜歡做IM開發(fā)的,請推薦一個Z好的開源即時通訊軟件,謝謝。... 大家好,請問有沒人喜歡做IM開發(fā)的,請推薦一個Z好的開源即時通訊軟件,謝謝。 展開
2011-01-07 00:15:56 452 4
Z好用的C語言編程軟件是哪個
 
2016-12-13 17:13:17 459 1
學習LabVIEW對c語言的要求多高
 
2013-08-11 12:58:52 355 4
求C語言計時器的例子
我想為執(zhí)行某個功能建立一個計時器。比如說,當A功能開始時,A計時器開始計時,當A功能結束時,A計時器結束計時,將A執(zhí)行的時間返回給我,這樣的計時器該怎么寫?
2011-11-29 00:21:26 642 2
學C語言用哪個編程軟件Z好? 急
有的話,請E--mial給我! 252037697,謝謝了
2012-02-06 06:55:12 403 4
急?。。。。。。。☆}目是寫一個溫度傳感器的C語言程序
傳感器由電位器模擬電位器連接于模數(shù)轉換器通道1(PAD0)。此模數(shù)轉換器ATD0是10bits并在0-2.55V的電壓之間變化。當外界溫度0度時電壓為0。溫度102.3度時電壓2.55v。Z后把攝氏溫度輸... 傳感器由電位器模擬 電位器連接于模數(shù)轉換器通道1(PAD0)。此模數(shù)轉換器ATD0是10bits 并在0-2.55V的電壓之間變化。當外界溫度0度時電壓為0。溫度102.3度時電壓2.55v。Z后把攝氏溫度輸出在LCD上每秒溫度刷新一次 用(tempo_n(xx))) 問題補充: 要通過hc12芯片 展開
2011-04-06 15:57:57 409 2
Z安全的企業(yè)即時通訊軟件?
 
2016-12-15 04:57:36 396 3
C語言編程是在什么軟件上編
 
2016-11-15 07:26:57 512 2
企業(yè)即時通訊軟件哪家好?
 
2016-06-28 12:19:20 371 1
c語言編程軟件vc6.0怎么打開軟件
 
2013-10-14 07:18:36 507 1

4月突出貢獻榜

推薦主頁

最新話題