CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
不看会后悔的Windows XP之经验谈 简单快捷DIY实用家庭影院
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  VC/MFC >  基础类

我用vc建立一个控制台程序,支持mfc,程序很简单,但是运行出错,请大家帮我看看

楼主SauMa(笨笨)2002-04-11 17:29:33 在 VC/MFC / 基础类 提问

 
  这是程序段,编译通过,运行出错,是为什么啊?  
                                      char   *str;  
  int   ret;  
   
  str   =   NULL;  
  cout<<"input   your   msg   :   ";  
  cin>>str;  
  cout<<"\n";  
   
  if   (ret   =   mysocket.SendTo   (str,strlen   (str),10000,"192.168.1.157",0)   ==0   )  
  cout<<"Send   Message   Success!\n";  
  else  
  cout<<"Send   Message   Failed!\n";  
  mysocket.Close   (); 问题点数:20、回复次数:6Top

1 楼YP2002CN(混世阿呆)回复于 2002-04-11 17:37:20 得分 3

是不是mysocket.Close   ();出现问题了..(程序执行后,close的位置是不是有问题).还有mysocket是什么类的?(关注).其实我也不知道..瞎菜Top

2 楼feng_sky(日三而省.)回复于 2002-04-11 17:40:10 得分 3

程序主体没有错,应是mysocket.SendTo   和mysocket.Close出了问题。  
  这两个是不是CSOCKET类?  
   
  你可以直接用WSAWINSOCKET来作。  
                     
                     
             
            VersionRequested   =   MAKEWORD(VERSION_MAJOR,   VERSION_MINOR);  
                Error   =   WSAStartup(VersionRequested,   &WsaData);    
        socketfh   =   WSASocket(PF_INET,   SOCK_STREAM,   0,   NULL,   0,   0);  
        if   (socketfh   ==   INVALID_SOCKET)   {  
                          printf("open_socket   ::   open   socket   error\n%d",socketfh);  
                return(-1);  
        }SockAddr.sin_family   =   AF_INET;  
          SockAddr.sin_port   =   htons(port);  
  SockAddr.sin_addr.s_addr   =   inet_addr(ip);  
          SockAddrLen   =   sizeof(SockAddr);  
          ConnectStatus   =   WSAConnect(socketfh,   (struct   sockaddr   *)&SockAddr,   SockAddrLen,    
                                      NULL,   NULL,   NULL,   NULL);  
   
          if   (ConnectStatus   ==   SOCKET_ERROR)   {  
                  Error   =   WSAGetLastError();  
                  if   (Error   !=   WSAEWOULDBLOCK)   {    
                          printf("   make_sckt   ::socket     Connect   failed.     Error   code:   [%d]\n",   Error);  
                  return(-1);  
                  }  
          }    
          printf("make_sckt   ::make_sckt   id   is   [%d]\n",socketfh);  
  return((int   )socketfh)   ;Top

3 楼wsjdouble(废墟)回复于 2002-04-11 20:12:34 得分 3

应该是if语句写错,  
  你试试这样写看可不可以  
          if(   (   ret   =   mysocket.SendTo   (str,strlen   (str),10000,"192.168.1.157",0)   )   ==0   )Top

4 楼wx_zzm()回复于 2002-04-11 20:25:05 得分 3

char   *str没有分配内存空间  
  Top

5 楼lgqzlx(Gary li)回复于 2002-04-11 20:48:28 得分 4

同意wx_zzm()   的看法,应该用char   buf[256]Top

6 楼qiuanhong(练从难处练,用从易处用)回复于 2002-04-11 21:02:19 得分 4

没有分配空间:  
   
  str   =   new   char[255];  
   
   
  Top

相关问题

  • (急)vc编写有MFC支持的控制台程序,但在程序中要用到ADO,请问我初始化变量时候出错了!
  • 一个出错的控制台程序
  • VC控制台中的string
  • 控制台程序用到CString,为何出错
  • 为什么在控制台下面使用CSocket出错呢?
  • 控制台提示出错??? 在索引中未找到项目
  • SQL SERVER系统控制台启动出错
  • OpenGL:如何从控制台到MFC
  • 简单的VC控制台问题
  • 请教高手:捕获了控制台关闭消息,但是老是出错

关键词

  • 程序
  • cout
  • str

得分解答快速导航

  • 帖主:SauMa
  • YP2002CN
  • feng_sky
  • wsjdouble
  • wx_zzm
  • lgqzlx
  • qiuanhong

相关链接

  • Visual C++类图书
  • Visual C++类源码下载

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
提问
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
北京创新乐知广告有限公司 版权所有, 京 ICP 证 070598 号
世纪乐知(北京)网络技术有限公司 提供技术支持
Copyright © 2000-2008, CSDN.NET, All Rights Reserved
GongshangLogo