我用vc建立一个控制台程序,支持mfc,程序很简单,但是运行出错,请大家帮我看看 是不是mysocket.Close ();出现问题了..(程序执行后,close的位置是不是有问题).还有mysocket是什么类的?(关注).其实我也不知道..瞎菜 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 程序主体没有错,应是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) ; 应该是if语句写错,你试试这样写看可不可以 if( ( ret = mysocket.SendTo (str,strlen (str),10000,"192.168.1.157",0) ) ==0 ) char *str没有分配内存空间 同意wx_zzm() 的看法,应该用char buf[256] 没有分配空间:str = new char[255]; 虚拟串口问题 虽然现在移动终端很火,各种开发,但我还是想坚持PC上的开发。这种心理以后能养家否? 中英文字符在CString中的长度计算和部分字符内容的获取 求关于视频实时传输的源码(类似QQ视频,但不传送声音) 在VC++中如何實現指針 在VC中如何改掉编译后生成的文件名? 如何在程序中让所有的控件背景透明? C++问题,有兴趣钻研的看看 祝大家又顺利过了一年! VC的Bug? ComboBox为什么不显示内容? 万分焦急,今晚必需解决:如何找回消失的系统托盘图标? activex的高手帮帮忙
这两个是不是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) ;
你试试这样写看可不可以
if( ( ret = mysocket.SendTo (str,strlen (str),10000,"192.168.1.157",0) ) ==0 )