鱼C论坛

 找回密码
 立即注册
查看: 3101|回复: 2

[技术交流] c++版 聊天器 [附代码哦]

[复制链接]
发表于 2011-10-6 12:40:15 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
  1. //服务端--先启动
  2. // Need:[ws2_32.lib]
  3. #include <Windows.h>
  4. #include <stdio.h>
  5. void main()
  6. {
  7. WORD wVersionRequested;
  8. WSADATA wsaData;
  9. int err;

  10. wVersionRequested = MAKEWORD( 1, 1 );

  11. err = WSAStartup( wVersionRequested, &wsaData );
  12. if ( err != 0 ) {

  13. return;
  14. }
  15. if ( LOBYTE( wsaData.wVersion ) != 1 ||
  16. HIBYTE( wsaData.wVersion ) != 1 ) {

  17. WSACleanup( );
  18. return;
  19. }
  20. SOCKET sockSrv=socket(AF_INET,SOCK_DGRAM,0);
  21. SOCKADDR_IN addrSrv;
  22. addrSrv.sin_addr .S_un .S_addr =htonl(INADDR_ANY);
  23. addrSrv.sin_family =AF_INET;
  24. addrSrv.sin_port =htons(6000);

  25. bind(sockSrv,(SOCKADDR*)&addrSrv,sizeof(SOCKADDR));

  26. char recvBuf[100];
  27. char sendBuf[100];
  28. char tempBuf[200];

  29. SOCKADDR_IN addrClient;
  30. int len=sizeof(SOCKADDR);

  31. while(1)
  32. {
  33. recvfrom(sockSrv,recvBuf,100,0,(SOCKADDR*)&addrClient,&len);
  34. if('q'==recvBuf[0])
  35. {
  36. sendto(sockSrv,"q",strlen("q")+1,0,(SOCKADDR*)&addrClient,len);
  37. printf("Chat end!\n");
  38. break;
  39. }
  40. sprintf(tempBuf,"%s say : %s",inet_ntoa(addrClient.sin_addr ),recvBuf);
  41. printf("%s\n",tempBuf);
  42. printf("Please input data:\n");
  43. gets(sendBuf);
  44. sendto(sockSrv,sendBuf,strlen(sendBuf)+1,0,(SOCKADDR*)&addrClient,len);
  45. }
  46. closesocket(sockSrv);
  47. WSACleanup();
  48. }
复制代码
  1. //客户端--后启动
  2. // Need:[ws2_32.lib]
  3. #include <Windows.h>
  4. #include <stdio.h>
  5. void main()
  6. {
  7. WORD wVersionRequested;
  8. WSADATA wsaData;
  9. int err;

  10. wVersionRequested = MAKEWORD( 1, 1 );

  11. err = WSAStartup( wVersionRequested, &wsaData );
  12. if ( err != 0 ) {

  13. return;
  14. }
  15. if ( LOBYTE( wsaData.wVersion ) != 1 ||
  16. HIBYTE( wsaData.wVersion ) != 1 ) {

  17. WSACleanup( );
  18. return;
  19. }
  20. SOCKET sockClient=socket(AF_INET,SOCK_DGRAM,0);
  21. SOCKADDR_IN addrSrv;
  22. addrSrv.sin_addr .S_un .S_addr =inet_addr("127.0.0.1");
  23. addrSrv.sin_family =AF_INET;
  24. addrSrv.sin_port =htons(6000);


  25. char recvBuf[100];
  26. char sendBuf[100];
  27. char tempBuf[200];

  28. int len=sizeof(SOCKADDR);

  29. while(1)
  30. {
  31. printf("Please input data:\n");
  32. gets(sendBuf);
  33. sendto(sockClient,sendBuf,strlen(sendBuf)+1,0,
  34. (SOCKADDR*)&addrSrv,len);
  35. recvfrom(sockClient,recvBuf,100,0,(SOCKADDR*)&addrSrv,&len);
  36. if('q'==recvBuf[0])
  37. {
  38. sendto(sockClient,"q",strlen("q")+1,0,(SOCKADDR*)&addrSrv,len);
  39. printf("Chat end!\n");
  40. break;
  41. }
  42. sprintf(tempBuf,"%s say : %s",inet_ntoa(addrSrv.sin_addr ),recvBuf);
  43. printf("%s\n",tempBuf);


  44. }
  45. closesocket(sockClient);
  46. WSACleanup();
  47. }
复制代码


想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
发表于 2011-10-6 13:31:37 | 显示全部楼层
大力支持下
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
发表于 2011-10-6 16:17:20 | 显示全部楼层
支持下....
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-4-20 03:33

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表