导航:首页 > 网络连接 > vc网络连接

vc网络连接

发布时间:2022-11-26 02:05:24

① VC 网络编程新手 求助关于客户端自动连接

首先,楼主要知道,如果服务器端没有开启,即服务器没有调用listen&accept,对connect的调用会导致这个函数一直不会返回(当然最终会返回,默认时间很长),但楼主是在OnTimer中调用connect的,WM_TIMER设为1秒是不合理的。

可以这样做对话框初始化设置SetTimer;
到时后,调用OnTimer,在OnTimer中先杀死Timer,然后再创建新的线程进行socket的处理,最后如果connect返回失败,可以在线程返回前再次SetTimer,这样做比较好。

另外,考虑到在新线程中的connect时,可能会关闭对话框,因此应该在OnClose中进行一些处理,如closesocket,这样可以强迫connect返回。这样可以使窗口被关闭后进程得体的被终止。

最后还要返回到新线程中对connect进行一些处理,必须让connect知道调用失败是因为连接超时还是因为SOCKET被强行关闭。因为如果是连接超时,那就可以再次SetTimer以便在下一秒再试着连接。如果是SOCKET被关闭了,connect不应该再次SetTimer,因为进程要退出了。代码如下:
ThreadProc() {
...
if (SOCKET_ERROR == connect(...)) {
if (WSAEINTR == WSAGetLastError()) {
//SOCKET被强行关闭导致错误代码为WSAEINTR
...
} else {
SetTimer(hwnd, 1, 1000, NULL);
}
}
...
}

注意,窗口被关闭时不能使用WSACleanup,因为connect后要使用WSAGetLastError,WSACleanup的调用要慎重,如在CWinApp::ExitInstance中。还有楼主在connect时第一个参数s是什么东西?是不是应该改为m_socket? 在OnTimer中调用不会返回的connect会使窗口界面出现“假死”.永远不要让窗口处理函数长时间的不能返回。如果要进行长时间的处理,应该另外开线程进行单独处理。

② VC如何编程实现访问外网

Client/Server模式可以用在广域网。

假设你要访问的IP是220.181.28.42 对方开了2345端口

CSocket sock;
sock.Create();
sock.Connect(220.181.28.42,2345);

这样就连接上了

③ vs安装显示网络无法连接失败

您好,方法
网络上的解决方式基本是两个,第一个,重装VC++2010库,但是不论下载哪个版本的文件,问题依旧存在。
第二个是重新下载它提示的文件VC_red.msi
但是单独下载这个文件,会提示无法安装,不适配。
这些方法都试过了,都无法解决,但是不安装C++库很多软件都无法运行,尤其类似CAD或者会声会影这些大型的软件,怎么办呢?
其实解决方法也比较简单,不用下载什么,也不用重装什么。我们首先仔细观察一下错误提示,下方有一个绝对路径。
提示源无法打开,检查一下,你的电脑肯定有前方的盘符。我们在安装过程中,打开这个盘符,一定可以找到这个路径。
注意一定是在安装中,如果退出安装,是无法找到此路径的。然后我们定位进入,会发现丢失的vc_red.msi。
定位安装即可,肯定可以成功。原因其实很简单,因为安装文件解压的时候没有解压到本目录,而是在其他根目录下面有一个临时生成的文件夹,就是一长串数字字母组成的,进去之后发现原来vc运行库安装位置默认是解压缩到这里了,但是由于目录名没取对,所以下一步无法进行。

④ VC怎么在对话框上面添加网页连接

如果你WINDOWS 的话 ,就用用
ShellExecute(NULL,TEXT("open"),TEXT("http://.com/"),NULL,NULL,SW_SHOWNORMAL);

⑤ vc网络编程断开连接的问题

调用socket的接收发送函数返回不正确,可以知道网络异常
如果想知道网络状态但长时间不发送接收数据的话,可以做一个心跳机制,即每隔几秒来发送一个很小的包,检测返回值来确定网络状态

⑥ VC中怎么禁用网络连接

使用WMI即可。
Win32_NetworkAdapter 里有对应的Enable和Disable方法。你可以通过调用这个两个函数来启用和关闭网络连接。

Enable
Enables the network adapter.

Disable
Disables the network adapter.

⑦ VC++断开网络连接的程序

RasHangUp
这个函数的功能和用法都很简单,它只有一个参数,就是要挂断的拨号网络连接的句柄。我们可以利用
'RasEnumConnections获得当前系统所有RAS连接(通常我们的系统在一个时刻只使用一个拨号网络连接),利用这个函数我就可以得到RasHangUp所需的句柄了

⑧ 1、如何使用VC判断本地连接是否连接 2、如何使用VC判断无线网络是否连接

赞成楼上的说法!利用API 获得网卡信息,如果IP地址 网管知网掩码DNS都是正确的,说明的网络连接是正确的,当然分情况的 无线和有线。

⑨ VC++如何获取桌面上“网络连接快捷方式”的图标

嗯,系统的一些特殊图标不是你那样获取的,应该是用PIDL定位后去获取,你看一下我的代码

HICONGetIconForCSIDL(intcsidl)
{
LPITEMIDLISTpidl=0;
SHGetSpecialFolderLocation(NULL,csidl,&pidl);
if(pidl)
{
SHFILEINFOshellInfo;
SHGetFileInfo(LPCTSTR(pidl),FILE_ATTRIBUTE_NORMAL,
&shellInfo,sizeof(shellInfo),
SHGFI_PIDL|SHGFI_ICON);
IMalloc*pMalloc;
SHGetMalloc(&pMalloc);
if(pMalloc)
{
pMalloc->Free(pidl);
pMalloc->Release();
}
returnshellInfo.hIcon;
}
return0;
}

voidCTestICONDlg::OnOK()
{
//TODO:Addextravalidationhere

HICONhIcon=GetIconForCSIDL(CSIDL_NETWORK);

CClientDCdc(this);
dc.DrawIcon(0,0,(HICON)hIcon);

DestroyIcon(hIcon);
}


我测试过~可以绘制出图标~~其它的也类似,你换一下CSIDL_NETWORK,把它换成其它就获取其它图标了

⑩ 怎么用VC++编写一个检查网络连接的程序,以及是否能连接外部ftp服务器

gethostname()函数可以 满足你1 的要求,
2,就复杂了,如果你在程序中指定了IP 比较好办 GetSocketName()就可以检测出来,不成功就返回0.0.0.0 。
如果你是想随便就想知道能不能连一个随意的FTP那可麻烦了。不能做一个扫描器吧。

阅读全文

与vc网络连接相关的资料

热点内容
网络卖产品需要多少钱 浏览:507
怎么让家里的网络快速如新 浏览:518
单位网络安全要求会议 浏览:681
全国网络安全军民融合 浏览:526
笔记本网络本地连接好还是无线 浏览:825
网络贷款多少钱利息 浏览:503
沈阳哪里能网络抢票 浏览:977
智慧屏看电视需要连接网络吗 浏览:859
怎么看电脑可不可以连xbox网络 浏览:280
华为家庭网络信号全覆盖 浏览:316
施乐无线网络连接设置 浏览:48
我的移动网络密码 浏览:799
如何提高网络文化出海 浏览:114
新网络词在哪里有 浏览:430
计算机网络重点简答题 浏览:175
开数据但网络连接超时 浏览:328
移动接网络的路由器怎么更换 浏览:1004
上海美猴网络怎么样 浏览:509
3g网络哪个运营商快 浏览:924
在校园如何使用有线网络 浏览:302

友情链接