1. C/C++程序检测和连接无线网络
有重新写代码的这个必要吗?
WINDOWS7(几乎所有版本的WIN系统)
本身就有这个功能啊
你只要在网络连接中,把名为Aaa的这个无线AP设为默认连接AP(或备选
AP)
当你的网卡接收到这个AP的信号时,它自然就会自动连接。
2. 如何检测TCP网络连接状态
用netstat查看tcp已连接状态的具体步骤:
1、同时按住“windows键”+“R”打开运行对话框;
2、运行对话框中输入cmd,回车;
3、输入netstat回车即可。
注:
netstat命令中各选项的含义如下:
-a 显示所有socket,包括正在监听的。
-c 每隔1秒就重新显示一遍,直到用户中断它。
-i 显示所有网络接口的信息,格式“netstat -i”。
-n 以网络IP地址代替名称,显示出网络连接情形。
-r显示核心路由表,格式同“route -e”。
-t 显示TCP协议的连接情况
-u 显示UDP协议的连接情况。
-v 显示正在进行的工作。
-p 显示建立相关连接的程序名和PID。
-b 显示在创建每个连接或侦听端口时涉及的可执行程序。
-e 显示以太网统计。此选项可以与 -s 选项结合使用。
-f 显示外部地址的完全限定域名(FQDN)。
-o显示与每个连接相关的所属进程 ID。
-s 显示每个协议的统计。
-x 显示 NetworkDirect 连接、侦听器和共享端点。
-y 显示所有连接的 TCP 连接模板。无法与其他选项结合使用。
一般用“netstat -na”命令来显示所有连接的端口并用数字表示。
3. 如何检查电脑网络是否正常
1、第一步在我们的电脑按"win+R"键打开运行,输入cmd,点击确定。
4. 如何用C语言检测本地连接是否正常
用程序比较难,用批处理实现自动更换IP,网关,自动拨号等
NETSH
INTERFACE
IP
SET
ADDRESS
NAME=本地连接
SOURCE=STATIC
ADDR=网卡IP
MASK=掩码
GATEWAY=网关IP
GWMETRIC
=
1
rasdial
宽带连接(此处与网络属性里的拨号名相同)
账号名
密码
5. 如何用C语言检测网络是否连接上、已连接、已断开状态
如果对方断开连接的话,那么readNum = recv ( socketId, rcvBuf, rcvBufSize, 0 );
readNum返回值应该是0,可以根据返回值判断
还有一种办法,就是做一个心跳检测,定时发送消息,如果发送失败就知道对方不在了
6. 检查网络连接怎么查
在Internet RFC标准中,Netstat的定义是: Netstat是在内核中访问网络及相关信息的程序,它能提供TCP连接,TCP和UDP监听,进程内存管理的相关报告。-a 显示所有socket,包括正在监听的。-c 每隔1秒就重新显示一遍,直到用户中断它。-i 显示所有网络接口的信息,格式“netstat -i”。-n 以网络IP地址代替名称,显示出网络连接情形。-r显示核心路由表,格式同“route -e”。-t 显示TCP协议的连接情况-u 显示UDP协议的连接情况。-v 显示正在进行的工作。-p 显示指定协议信息。-b 显示在创建每个连接或侦听端口时涉及的可执行程序。-e 显示以太网统计。
7. C# 网络连接判断
下面这个程序就是, 你可以直接去建立一个控制台应用程序去调试一下
不过需要说明一下,程序的思路就是,通过PING的方式 去ping internet上计算机的IP地址(这里是随便用的一个网通服务器IP123.145.68.1),如果能ping成功代表,本地电脑连接上外网。。
123.145.68.1这个IP地址可以随意换 只要是在internet上的计算机的IP都可以,不过如果你程序的这个IP不是通过配置,而是写死在程序中的情况,推荐你使用一个一直都在线的计算机IP ,比如QQ,163等服务器IP(你应该明白吧)
那个IP 也可以换成 如http://www.163.com的 字符串,不过这时候 需要对
PingReply pr = p.Send("http://www.163.com");这句代码 进行try catch一下(因为,断开网络的时候会抛出异常);
暂停10分钟的那段代码要写在catch里,这里就不详细列出了。 你肯定知道的。
using System;
using System.Collections.Generic;
using System.Text;
using System.Net.NetworkInformation;
using System.Threading;
namespace ConsoleApplication1
{
class Program
{
static void Main(string[] args)
{
Ping p = new Ping();//创建Ping对象p
PingReply pr = p.Send("123.145.68.1");//向指定IP或者主机名的计算机发送ICMP协议的ping数据包
if (pr.Status == IPStatus.Success)//如果ping成功
{
Console.WriteLine("网络连接成功, 执行下面任务...");
}
else
{
int times = 0;//重新连接次数;
do
{
if (times >= 12)
{
Console.WriteLine("重新尝试连接超过12次,连接失败程序结束");
return;
}
Thread.Sleep(600000);//等待十分钟(方便测试的话,你可以改为1000)
pr = p.Send("123.145.68.1");
Console.WriteLine(pr.Status);
times++;
}
while (pr.Status != IPStatus.Success);
Console.WriteLine("连接成功");
times = 0;//连接成功,重新连接次数清为0;
}
}
}
}
不知道符合你要求不, 希望对你有帮助 ,,睡了 累死了,,语文差死了 所以组织了很久的语言,哈哈,
8. 怎么测试网络的连通性
电脑网络无论大与小、外网或内网,其原理是相通的,无论做为家庭用户或单位工作人员,懂得点网络知识或网络工作原理是很有必要的。有时候网络出了故障,总是着急,不知道故障出在哪?是网卡坏了?还是传输介质有问题?或者协议等网络配置不对?或都根据就是服务器或网络供应商的问题,等等等等。这里,我把测试网络连通性的方法告诉大家,便于大家判断与解决网络故障:
工具/原料
纯手工操作,无需任何工具
步骤/方法
首先进入windows下的虚拟dos状态。开始---运行--在对话框中输入cmd,回切即可。
第二步,查看一下自己电脑的ip地址及其它网络参数。在c:\>后面输入ipconfig /all,回切,从以上图片可以看出,本机,即自己电脑的ip地址(ip address)是10.105.57.101,子网掩码(subnet mask):255.255.255.255,缺省网关(default gateway):10.105.57.101.
接下来,ping一下自己电脑的ip地址,如果有信号返回,则自己的网卡没有故障。
从上面图片中反映的信息可以看出:
packets(数据包):sent=4(发送4个),received=4(接收到4个),lost=0(0% loss)数据包丢失=0(0%的损失),也即信息有返回,说明自己电脑或网卡没有故障
步骤阅读
接着再ping一个外网域名或ip(如果是局域网,可以ping服务器ip或其它任何一机器ip),看是否有信息返回
.跟上面一样,我们ping 的是搜狐的域名www.sohu.com,从信息中可以看出有数据包返回,即发送4个数据包,收到4个数据包,数据未丢失,说明连接外网没问题,网络是连通的。相反,如果发送4个数据包,收到0个数据包,数据包丢失4个(损失率100%),则说明网络不通。
最后一步,如果网络不通,可照以上方法ping一下网关,如果没有数据包返回,则网关或路由设置不对,或者网络服务商根据没提供网络信号。
9. 如何测试网络接口的链接畅通与否,C语言
#include<stdio.h>
#include<string.h>
int main()
{
char s1[100],s2[100];
gets(s1);
gets(s2);
strcat(s1,s2);
puts(s1);
return 0;
}
运行结果:
10. c语言如何检测网络是否连接
1、如果对方断开连接的话,那么readNum = recv ( socketId, rcvBuf, rcvBufSize, 0 );
readNum返回值应该是0,可以根据返回值判断。
2、recv函数返回值说明
recv函数
int recv( SOCKET s, char FAR *buf, int len, int flags);
不论是客户还是服务器应用程序都用recv函数从TCP连接的另一端接收数据。该函数的第一个参数指定接收端套接字描述符; 第二个参数指明一个缓冲区,该缓冲区用来存放recv函数接收到的数据; 第三个参数指明buf的长度; 第四个参数一般置0。
这里只描述同步Socket的recv函数的执行流程。当应用程序调用recv函数时,
(1)recv先等待s的发送缓冲中的数据被协议传送完毕,如果协议在传送s的发送缓冲中的数据时出现网络错误,那么recv函数返回SOCKET_ERROR,
(2)如果s的发送缓冲中没有数据或者数据被协议成功发送完毕后,recv先检查套接字s的接收缓冲区,如果s接收缓冲区中没有数据或者协议正在接收数 据,那么recv就一直等待,直到协议把数据接收完毕。当协议把数据接收完毕,recv函数就把s的接收缓冲中的数据到buf中(注意协议接收到的数据可能大于buf的长度,所以 在这种情况下要调用几次recv函数才能把s的接收缓冲中的数据完。recv函数仅仅是数据,真正的接收数据是协议来完成的), recv函数返回其实际的字节数。如果recv在时出错,那么它返回SOCKET_ERROR;如果recv函数在等待协议接收数据时网络中断了,那么它返回0。 默认 socket 是阻塞的 解阻塞与非阻塞recv返回值没有区分,都是 <0 出错 =0 连接关闭 >0 接收到数据大小,
特别:返回值<0时并且(errno == EINTR || errno == EWOULDBLOCK || errno == EAGAIN)的情况下认为连接是正常的,继续接收。只是阻塞模式下recv会阻塞着接收数据,非阻塞模式下如果没有数据会返回,不会阻塞着读,因此需要循环读取)。
返回说明: 成功执行时,返回接收到的字节数。另一端已关闭则返回0。失败返回-1,errno被设为以下的某个值 EAGAIN:套接字已标记为非阻塞,而接收操作被阻塞或者接收超时 EBADF:sock不是有效的描述词 ECONNREFUSE:远程主机阻绝网络连接 EFAULT:内存空间访问出错 EINTR:操作被信号中断 EINVAL:参数无效 ENOMEM:内存不足 ENOTCONN:与面向连接关联的套接字尚未被连接上 ENOTSOCK:sock索引的不是套接字 当返回值是0时,为正常关闭连接;
思考:当对侧没有send,即本侧的套接字s的接收缓冲区无数据,返回值是什么(EAGAIN,原因为超时,待测)