VC驿站

 找回密码
 加入驿站

QQ登录

只需一步,快速开始

有编程疑问吗?还请到提问专区发帖提问!
搜索
查看: 141|回复: 1

[求助] 为什么运行后客户端就崩溃?

[复制链接]
02_avatar_middle
在线会员 Dvol 发表于 2018-8-9 14:22:15 | 显示全部楼层 |阅读模式
3驿站币
  1. //服务端
  2. #include <iostream>
  3. #include <WinSock2.h>
  4. #pragma comment(lib,"ws2_32.lib")

  5. using namespace std;

  6. void  TCPServer()
  7. {
  8.     //创建服务器Socket
  9.     SOCKET socksvr = socket(AF_INET,SOCK_STREAM,IPPROTO_TCP);
  10.     if(INVALID_SOCKET == socksvr)
  11.     {
  12.         return;
  13.     }
  14.     //绑定IP和端口
  15.     struct sockaddr_in svraddr = {0};
  16.     svraddr.sin_family = AF_INET;
  17.     svraddr.sin_port = htons(5678);
  18.     svraddr.sin_addr.S_un.S_addr = htonl(INADDR_ANY);
  19.     bind(socksvr,(struct sockaddr*)&svraddr,sizeof(svraddr));
  20.     //侦听
  21.     listen(socksvr,SOMAXCONN);
  22.     //待候客户端
  23.     cout<<"待候客户端...."<<endl;
  24.     struct sockaddr_in clientaddr = {0};
  25.     int nLent = sizeof(clientaddr);
  26.     SOCKET sockclient =  accept(socksvr,(struct sockaddr*)&clientaddr,&nLent);
  27.     //数据收发
  28.     CHAR szText[100] = {0};
  29.     recv(sockclient,szText,100,0);
  30.     printf("%s\n",szText);
  31.     CHAR szSend[100] = {"hello"};
  32.     send(sockclient,szSend,sizeof(szSend),0);
  33.     system("pause");
  34.    
  35.     //closesocket(sockclient);
  36.     closesocket(socksvr);
  37. }

  38. int main()
  39. {
  40.     WSADATA wsa = {0};
  41.     WSAStartup(MAKEWORD(2,2),&wsa);

  42.     TCPServer();
  43.     system("pause");
  44.     return 0;
  45. }
复制代码





  1. //客户端
  2. #include <WinSock2.h>
  3. #include <iostream>
  4. using namespace std;

  5. #pragma comment(lib,"ws2_32")

  6. void TCPClient()
  7. {
  8.     SOCKET sockclient = socket(AF_INET,SOCK_STREAM,IPPROTO_TCP);
  9.     if(INVALID_SOCKET == sockclient)
  10.     {
  11.         return;
  12.     }
  13.     struct sockaddr_in addr = {0};
  14.     addr.sin_family = AF_INET;
  15.     addr.sin_port = htons(5678);
  16.     addr.sin_addr.S_un.S_addr = inet_addr("127.0.0.1");
  17.     connect(sockclient,(struct sockaddr*)&addr,sizeof(addr));
  18.     //数据收发
  19.     CHAR szSend[100] = "hello Server";
  20.     send(sockclient,szSend,sizeof(szSend),0);
  21.     CHAR szRecv[100] = {0};
  22.     recv(sockclient,szRecv,100,0);
  23.     printf("%s\n",sockclient);
  24.     system("pause");
  25.     //关闭socket
  26.     closesocket(sockclient);
  27. }

  28. int main()
  29. {
  30.     //socket库初始化
  31.     WSADATA wsa = {0};
  32.     WSAStartup(MAKEWORD(2,2,),&wsa);
  33.     TCPClient();
  34.     return 0;
  35. }
复制代码

最佳答案

查看完整内容

低级错误! 把客户端的: printf("%s\n", sockclient); 改成: printf("%s\n", szRecv); 就可以了!




上一篇:请教 _popen 管道,不结束
下一篇:一个程序获取另一个程序的设置

发帖求助前要善用论坛搜索功能,那里可能会有你要找的答案;

如果你已经在论坛发帖求助,并且从坛友或者管理的回复中解决了问题,请编辑帖子并把分类改成【已解决】

如何回报帮助你解决问题的坛友?可以给对方加【热心】【驿站币】,加分不会扣除自己的积分,做一个热心并受欢迎的人!

51_avatar_middle
online_admins Syc 发表于 2018-8-9 14:22:16 | 显示全部楼层
低级错误!
把客户端的:
printf("%s\n", sockclient);
改成:
printf("%s\n", szRecv);
就可以了!

发帖求助前要善用论坛搜索功能,那里可能会有你要找的答案;

如果你已经在论坛发帖求助,并且从坛友或者管理的回复中解决了问题,请编辑帖子并把分类改成【已解决】

如何回报帮助你解决问题的坛友?可以给对方加【热心】【驿站币】,加分不会扣除自己的积分,做一个热心并受欢迎的人!

回复

使用道具 举报

您需要登录后才可以回帖 登录 | 加入驿站 qq_login

本版积分规则

关闭

站长提醒上一条 /1 下一条

QQ
QQ在线咨询
联系电话
13591366679
手机扫一扫 关注本站精彩内容
wxqrcode

QQ|小黑屋|手机版|VC驿站 ( 辽ICP备09019393号tongdun|网站地图wx_jqr

GMT+8, 2018-8-22 09:59

Powered by Discuz! X3.4

© 2009-2018 cctry.com

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