导航:首页 > 无线网络 > 无线网络编程

无线网络编程

发布时间:2022-04-23 02:51:42

① 如何以编程方式创建和读取的WEP / EAP无线网络配置中的Android

1. 第1部分:创建一个无线网络的WEP配置编程 。

第2部分:阅读一个WEP无线网络配置编程
再次Straighforward。

第3部分:读一个EAP的WiFi配置编程
现在,这是棘手的。你可以找到它通过香草的Android用户界面中WifiDialog.java节省了EAP的WiFi配置的代码。唔够方便我们在我们的应用程序的代码,那么不要!如果你碰巧去尝试这一点,你会得到错误说找不到符号eap,phase,client_cert等。有点详细的调查EnterpriseFieldis private内WiFiConfiguration类和所有的符号,我们无法找到是类型EnterpriseField。好了,我们已经打了一个路障,我们需要这些字段读取/保存一个EAP配置,但我们并没有以编程方式访问他们!Java Reflection API救援
好吧,我不是一个Java专家,所以我不会越来越到的反射API的细节,例如,你可以谷歌的教程或到达这里。
为了保持简短而亲切,反射API允许你检查类,接口,字段在不知道的类,方法等,还可以实例化新对象,并获取/设置现场reflection.And,重要的是能思考的帮助您访问私有的类里面嗯,这是我们需要做的不是吗? :)
让我们来检查代码示例现在它显示了如何读取一个EAP的WiFi反射API。作为一个片段将记录配置到一个文件,并将其保存在SD卡....非常漂亮..诶;)反射API概述一点点,我相信ING下面的代码是很容易。
private static final String INT_PRIVATE_KEY = "private_key";
private static final String INT_PHASE2 = "phase2";
private static final String INT_PASSWORD = "password";
private static final String INT_IDENTITY = "identity";
private static final String INT_EAP = "eap";
private static final String INT_CLIENT_CERT = "client_cert";
private static final String INT_CA_CERT = "ca_cert";
private static final String INT_ANONYMOUS_IDENTITY = "anonymous_identity";
final String INT_ENTERPRISEFIELD_NAME = "android.net.wifi.WifiConfiguration$EnterpriseField";

第4部分:储存的EAP无线网络配置编程
如果你已经读过的部分3,您已经了解了反射mojo,在这里工作,如果你是直接跳跃到本节,请在第3部分的代码段之前,看了介绍,你会加快速度通过代码来这里微风!
void saveEapConfig(String passString, String userName)
{
/********************************Configuration Strings****************************************************/
final String ENTERPRISE_EAP = "TLS";
final String ENTERPRISE_CLIENT_CERT = " CodeGo.net
final String ENTERPRISE_PRIV_KEY = " CodeGo.net
//CertificateName = Name given to the certificate while installing it

/*Optional Params- My wireless Doesn't use these*/
final String ENTERPRISE_PHASE2 = "";
final String ENTERPRISE_ANON_IDENT = "ABC";
final String ENTERPRISE_CA_CERT = "";
/********************************Configuration Strings****************************************************/

/*Create a WifiConfig*/
WifiConfiguration selectedConfig = new WifiConfiguration();

/*AP Name*/
selectedConfig.SSID = "\"SSID_Name\"";

/*Priority*/
selectedConfig.priority = 40;

/*Enable Hidden SSID*/
selectedConfig.hiddenSSID = true;

/*Key Mgmnt*/
selectedConfig.allowedKeyManagement.clear();
selectedConfig.allowedKeyManagement.set(WifiConfiguration.KeyMgmt.IEEE8021X);
selectedConfig.allowedKeyManagement.set(WifiConfiguration.KeyMgmt.WPA_EAP);

/*Group Ciphers*/
selectedConfig.allowedGroupCiphers.clear();
selectedConfig.allowedGroupCiphers.set(WifiConfiguration.GroupCipher.CCMP);
selectedConfig.allowedGroupCiphers.set(WifiConfiguration.GroupCipher.TKIP);
selectedConfig.allowedGroupCiphers.set(WifiConfiguration.GroupCipher.WEP104);
selectedConfig.allowedGroupCiphers.set(WifiConfiguration.GroupCipher.WEP40);

/*Pairwise ciphers*/
selectedConfig.allowedPairwiseCiphers.clear();
selectedConfig.allowedPairwiseCiphers.set(WifiConfiguration.PairwiseCipher.CCMP);
selectedConfig.allowedPairwiseCiphers.set(WifiConfiguration.PairwiseCipher.TKIP);

/*Protocols*/
selectedConfig.allowedProtocols.clear();
selectedConfig.allowedProtocols.set(WifiConfiguration.Protocol.RSN);
selectedConfig.allowedProtocols.set(WifiConfiguration.Protocol.WPA);

// Enterprise Settings
// Reflection magic here too, need access to non-public APIs
try {
// Let the magic start
Class[] wcClasses = WifiConfiguration.class.getClasses();
// null for overzealous java compiler
Class wcEnterpriseField = null;

for (Class wcClass : wcClasses)
if (wcClass.getName().equals(INT_ENTERPRISEFIELD_NAME))
{
wcEnterpriseField = wcClass;
break;
}
boolean noEnterpriseFieldType = false;
if(wcEnterpriseField == null)
noEnterpriseFieldType = true; // Cupcake/Donut access enterprise settings directly

Field wcefAnonymousId = null, wcefCaCert = null, wcefClientCert = null, wcefEap = null, wcefIdentity = null, wcefPassword = null, wcefPhase2 = null, wcefPrivateKey = null;
Field[] wcefFields = WifiConfiguration.class.getFields();
// Dispatching Field vars
for (Field wcefField : wcefFields)
{
if (wcefField.getName().equals(INT_ANONYMOUS_IDENTITY))
wcefAnonymousId = wcefField;
else if (wcefField.getName().equals(INT_CA_CERT))
wcefCaCert = wcefField;
else if (wcefField.getName().equals(INT_CLIENT_CERT))
wcefClientCert = wcefField;
else if (wcefField.getName().equals(INT_EAP))
wcefEap = wcefField;
else if (wcefField.getName().equals(INT_IDENTITY))
wcefIdentity = wcefField;
else if (wcefField.getName().equals(INT_PASSWORD))
wcefPassword = wcefField;
else if (wcefField.getName().equals(INT_PHASE2))
wcefPhase2 = wcefField;
else if (wcefField.getName().equals(INT_PRIVATE_KEY))
wcefPrivateKey = wcefField;
}

Method wcefSetValue = null;
if(!noEnterpriseFieldType){
for(Method m: wcEnterpriseField.getMethods())
//System.out.println(m.getName());
if(m.getName().trim().equals("setValue"))
wcefSetValue = m;
}

/*EAP Method*/
if(!noEnterpriseFieldType)
{
wcefSetValue.invoke(wcefEap.get(selectedConfig), ENTERPRISE_EAP);
}
else
{
wcefEap.set(selectedConfig, ENTERPRISE_EAP);
}
/*EAP Phase 2 Authentication*/
if(!noEnterpriseFieldType)
{
wcefSetValue.invoke(wcefPhase2.get(selectedConfig), ENTERPRISE_PHASE2);
}
else
{
wcefPhase2.set(selectedConfig, ENTERPRISE_PHASE2);
}
/*EAP Anonymous Identity*/
if(!noEnterpriseFieldType)
{
wcefSetValue.invoke(wcefAnonymousId.get(selectedConfig), ENTERPRISE_ANON_IDENT);
}
else
{
wcefAnonymousId.set(selectedConfig, ENTERPRISE_ANON_IDENT);
}
/*EAP CA Certificate*/
if(!noEnterpriseFieldType)
{
wcefSetValue.invoke(wcefCaCert.get(selectedConfig), ENTERPRISE_CA_CERT);
}
else
{
wcefCaCert.set(selectedConfig, ENTERPRISE_CA_CERT);
}
/*EAP Private key*/
if(!noEnterpriseFieldType)
{
wcefSetValue.invoke(wcefPrivateKey.get(selectedConfig), ENTERPRISE_PRIV_KEY);
}
else
{
wcefPrivateKey.set(selectedConfig, ENTERPRISE_PRIV_KEY);
}
/*EAP Identity*/
if(!noEnterpriseFieldType)
{
wcefSetValue.invoke(wcefIdentity.get(selectedConfig), userName);
}
else
{
wcefIdentity.set(selectedConfig, userName);
}
/*EAP Password*/
if(!noEnterpriseFieldType)
{
wcefSetValue.invoke(wcefPassword.get(selectedConfig), passString);
}
else
{
wcefPassword.set(selectedConfig, passString);
}
/*EAp Client certificate*/
if(!noEnterpriseFieldType)
{
wcefSetValue.invoke(wcefClientCert.get(selectedConfig), ENTERPRISE_CLIENT_CERT);
}
else
{
wcefClientCert.set(selectedConfig, ENTERPRISE_CLIENT_CERT);
}
// Adhoc for CM6
// if non-CM6 fails gracefully thanks to nested try-catch

try{
Field wcAdhoc = WifiConfiguration.class.getField("adhocSSID");
Field wcAdhocFreq = WifiConfiguration.class.getField("frequency");
//wcAdhoc.setBoolean(selectedConfig, prefs.getBoolean(PREF_ADHOC,
// false));
wcAdhoc.setBoolean(selectedConfig, false);
int freq = 2462; // default to channel 11
//int freq = Integer.parseInt(prefs.getString(PREF_ADHOC_FREQUENCY,
//"2462")); // default to channel 11
//System.err.println(freq);
wcAdhocFreq.setInt(selectedConfig, freq);
} catch (Exception e)
{
e.printStackTrace();
}

} catch (Exception e)
{
// TODO Auto-generated catch block
// FIXME As above, what should I do here?
e.printStackTrace();
}

WifiManager wifiManag = (WifiManager) getSystemService(Context.WIFI_SERVICE);
boolean res1 = wifiManag.setWifiEnabled(true);
int res = wifiManag.addNetwork(selectedConfig);
Log.d("WifiPreference", "add Network returned " + res );
boolean b = wifiManag.enableNetwork(selectedConfig.networkId, false);
Log.d("WifiPreference", "enableNetwork returned " + b );
boolean c = wifiManag.saveConfiguration();
Log.d("WifiPreference", "Save configuration returned " + c );
boolean d = wifiManag.enableNetwork(res, true);
Log.d("WifiPreference", "enableNetwork returned " + d );
}

以及多数民众赞成它!我希望这可以帮助开发者丢失,:)

希望这会有所帮助的

② 笔记本电脑如何安装无线网络适配器及程序

1. 首先要确认笔记本的硬件配置正常,如无线网卡驱动是否安装。桌面右击“我的电脑”,点击“管理”菜单进入,进入计算机管理界面,打开“系统工具”菜单,双击进入“设备管理器”界面;
2. 在“网络适配器”下,可以看到现在安装或内置的无线网卡状态;若无线网卡前有“黄色的感叹号”,则说明这台电脑的无线网卡安装有问题,请重新安装驱动或联系电脑提供商;
3. 然后是网络的配置。进入计算机管理界面后打开“服务和应用程序”菜单,双击进入“服务”界面。在“服务”列表中找到“Wireless Zero Configeration”应用程序,查看是否处于“已启动”状态,如未启动请单击鼠标右键选择“启动”菜单;
4. 进入“控制面板”——>“网络连接”界面,右键点击“无线网络连接”——>“属性”,选择“无线网络配置”菜单,在无线网络配置中勾选“用windows配置我的无线网络设置”;
5. 进入“控制面板”——>“网络连接”界面,查看“无线网络连接”是否为“启用”状态,如为“禁用”状态,请右键点击“无线网络连接”,选择“启用”菜单即可。处于启用状态的“无线网络连接”(正确);
6. 可以进入“控制面板”——>“网络连接”界面,右键点击“无线网络连接”——>“查看可用的无线连接” ,也可以直接双击电脑桌面右下角的“无线网络连接”,可以查看电脑搜索到的所有可用的各运营商的无线网络;
7. 选择正确的SSID连接无线网络,SSID(Service Set Identifier)用于区分不同的网络,也就是不同的路由器,为便于区分,请在路由器里面设置个性的方便记的名称。搜索到的无线网络中双击选择CMCC的接入点连接;
8. 电脑桌面右下角的“无线网络连接”图标上的红叉应已消失,双击后可以查看到当前无线网络连接的状态,包括接入的网络名称(CMCC)、信号强度等。

③ c语言可以编写通过无线网络传输的协议吗

你好!
c
语言可以。
你说不考虑硬件是不可能的,软件是建立在硬件的基础上的,其实能编写通过无线网络传输的协议不斤只有c
语言,但是能够和硬件紧密结合的还得数c
语言了
基于unix和linux
的无线网络传输的协议几乎都是用c编写的
我的回答你还满意吗~~

④ 学网络网络编程,是不是非得要先学html

HTML是基础。
Javascript是HTML的编程语言(脚本)

但是HTML和Javascript只是用户端的界面操作。

网络编程需要以上作为基础,其次学习网络编程需要懂得网络技术包括网络的七层架构、Internet、无线网、IPv4、IPv6等等。

但最重要的是一定要打下良好的编程基础。建议先学习一下C语言吧

⑤ 请教c++无线网络编程技术

我这段时间也在学网络编程,给推荐本书<<unix网络编程>>,个人感觉这才是正宗,虽然很多,但是没有哪一门学问能以两天就能学成的,慢慢来。
windows上的东西,次,因为你要搞网络编程就免不了要做服务器,通常服务器上有多少公司敢用windows.

⑥ wifi的设计者是谁如何学习网络,目前什么无线传输方式最快。网络编程的定义是什么,我想学习网络的

楼主你好 、WIFI技术由澳洲政府的研究机构CSIRO在90年代发明并于1996年在美国成功申请了无线网技术专利。 发明人是悉尼大学工程系毕业生Dr John O'Sullivan领导的一群由悉尼大学工程系毕业生组成的研究小组 。
学习网络一般两种方法。一是自学、再者就是培训班了!
而在计算机网络领域,无线通信介质主要是微波和卫星。
网络编程的定义:
网络编程从大的方面说就是对信息的发送到接收,中间传输为物理线路的作用,编程人员可以不用考虑……
网络编程最主要的工作就是在发送端把信息通过规定好的协议进行组装包,在接收端按照规定好的协议把包进行解析,从而提取出对应的信息,达到通信的目的!中间最主要的就是数据包的组装,数据包的过滤,数据包的捕获,数据包的分析,当然最后再做一些处理!
代码,开发工具,数据库,服务器架设和网页设计这5部分你都要接触
学习网络建议多去乌云看看 谢谢

⑦ Java网络编程基本概念是什么

1、Java网络编程基本概念——主机的网络层


主机网络层定义特定网络接口(如以太网或WiFi天线)如何通过物理连接将IP数据报发送到本地网络或世界其他地方。在主机网络层中,连接不同计算机的硬件部分(电缆、光纤、无线电波或烟雾信号)有时被称为网络的物理层。Java程序员不需要担心这一层,除非出现错误,例如计算机后面的插头脱落或有人切断了您与外部世界之间的T-1线。换句话说,Java将永远看不到物理层。


2、Java网络编程基本概念——网络层


Internet层的下一层是主机网络层,这是Java程序员需要考虑的第一层。因特网层协议定义了数据位和字节如何组织成更大的组,称为包,也定义了不同计算机互相查找的寻址机制。Internet Protocol (IP)是世界上使用最广泛的Internet层协议,也是Java唯一了解的Internet层协议。


因特网协议基本上是两种协议:IPV4使用32位地址,IPV6使用128位地址,并增加了技术特性来帮助路由。这是两种完全不同的网络协议,如果没有特殊的网关/隧道协议,它们甚至不能在同一网络上互操作,但是Java向您隐藏了几乎所有这些差异。


除了路由和寻址之外,因特网层的第二个作用是使不同类型的主机网络层能够彼此对话。因特网路由器在WiFi和以太网、以太网和DSL、DSL和光纤往返协议之间进行交换。没有因特网层或类似的分层,每台计算机只能与同一类型网络上的其他计算机通信。因特网层负责使用适当的协议将异类网络彼此连接起来。


3、Java网络编程基本概念——传输层


原始数据报有一些缺点。最明显的缺点是无法保证可靠的传输,即使可以保证,也可能在传输过程中被损坏。头检查只能检测头中的损坏,而不能检测数据报的数据部分。最后,即使数据报没有损坏地到达了它的目的地,它也可能不能按照发送的顺序到达。


传输层负责确保按发送的顺序接收数据包,确保没有数据丢失或销毁。如果数据包丢失,传输层要求发送方重新传输该数据包。为此,IP网络向每个数据报添加了一个额外的头,其中包含更多信息。


这个级别有两个主要协议。第一个是传输控制协议(TCP),这是一个昂贵的协议,允许丢失或损坏的数据按照发送顺序重新传输。第二个协议是用户数据报协议(User Datagram Protocol, UDP),它允许接收方检测损坏的数据包,而不保证它们按照正确的顺序发送(或者根本不发送)。然而,UDP通常比TCP快。TCP被称为可靠协议。UDP是不可靠的。


4、Java网络编程基本概念——应用程序层


向用户交付数据的层称为应用层。以下三个层定义如何将数据从一台计算机传输到另一台计算机。应用层决定数据传输后的操作。有HTTP为用户Web, SMTP, POP, IMAP为用户电子邮件;FSP, TFTP用于文件传输,NFS用于文件访问;文件共享使用Gnutella和BitTorrent;会话发起协议(SIP)和Skype用于语音通信。此外,您的程序可以在必要时定义自己的应用程序级协议。(页面)


5、Java网络编程基本概念——IP、TCP、UDP


IP被设计成允许任意两点之间有多条路由,绕过损坏的路由器来路由数据包。由于两点之间有多条路由,而且由于网络流量或其他因素,它们之间的最短路径可能会随着时间而变化,因此构成特定数据流的数据包可能不会走同一条路由。即使它们全部到达,也可能不是按照它们被发送的顺序到达的。为了改进这一基本机制,TCP被放置在IP上,以便连接的两端可以确认收到的IP数据包,并请求重传丢失或损坏的数据包。此外,TCP允许接收端上的数据包按照发送的顺序重新分组。


然而,TCP有很多开销。因此,如果单个数据包的丢失不会完全破坏数据,那么可以使用UDP发送数据包,而不需要TCP提供的保证。UDP是一种不可靠的协议。它不能保证信息包将到达它们的目的地,或者它们将以它们被发送的相同顺序到达。


6、Java网络编程基本概念——IP地址和域名


IPv4网络上的每台计算机都有一个4字节的数字ID。通常在一个点上以四段格式写,比如192.1.32.90,每个数字是一个无符号字节,范围从0到255。IPv4网络上的每台计算机都有一个唯一的四段地址。当数据通过网络传输时,包的报头包括要发送到的机器的地址(目的地址)和要发送到的机器的地址(源地址)。路由上的路由器通过检查目的地址来选择发送包的最佳路径。包含源地址是为了让收件人知道该对谁进行回复。


虽然计算机可以很容易地处理数字,但人类并不擅长记住它们。因此,域名系统(DNS)被开发出来,用来将容易记住的主机名(如www.12345.com)转换成数字互联网地址(如208.201.243.99)。当Java程序访问网络时,它们需要同时处理数字地址和相应的主机名。这些方法由java.net.InetAddress类提供。


7、Java网络编程基本概念——港口


如果每台计算机一次只做一件事,地址就足够了。但是现代计算机同时做许多不同的事情。电子邮件需要与FTP请求分开,而FTP请求也需要与Web通信分开。这是通过端口完成的。具有IP地址的每台计算机有数千个逻辑端口(确切地说,每个传输层协议有65,535个端口)。这些只是计算机内存中的抽象,不代表任何物理对象,不像USB端口。每个端口在1到65535之间进行数字标识。每个端口可以分配给一个特定的服务。


8、Java网络编程基本概念——一个防火墙


在互联网上有一些顽皮的人。要排除它们,通常需要在本地网络上设置一个接入点,并检查进出该接入点的所有流量。位于因特网和本地网络之间的一些硬件和软件会检查所有输入和输出的数据,以确保它是防火墙。防火墙通常是路由器的一部分,它将本地网络连接到更大的因特网,并可以执行其他任务,如网络地址转换。另外,防火墙可以是单独的机器。防火墙仍然主要负责检查进出其网络接口的数据包,根据一组规则接收或拒绝数据包。


本篇《什么是Java网络编程基本概念?看完这篇文章你一定可以明白》到这里就已经结束了,小编一直认为,某一个编程软件受欢迎是有一定原因的,首先吸引人的一定是其功能,环球网校的小编祝您java学习之路顺利,如果你还想知道更多java知识,也可以点击本站的其他文章进行学习。

⑧ C#无线编程也用Socket么

要看具体的协议的,有线还是无线只是一种形式,不同的无线协议也不一样,像蓝牙用bluetooth协议,电信无线用GPRS或者CMDA等协议,如果是WIFI的话应该可以用Socket,别的话你可能需要用相关的协议了,或者做个协议转换。

⑨ 网络编程的人对电脑熟悉吗

正常情况是是熟悉的,因为搞网络编程的人需要长时间使用电脑,而对于电脑的性能等方面还是要有一定了解的。

⑩ 有线网络编程无线网络 无线AP

可以。。电脑开放网络共享。。以电脑为无线发射器,

阅读全文

与无线网络编程相关的资料

热点内容
网络共享中心没有网卡 浏览:531
电脑无法检测到网络代理 浏览:1382
笔记本电脑一天会用多少流量 浏览:612
苹果电脑整机转移新机 浏览:1384
突然无法连接工作网络 浏览:1098
联通网络怎么设置才好 浏览:1236
小区网络电脑怎么连接路由器 浏览:1074
p1108打印机网络共享 浏览:1219
怎么调节台式电脑护眼 浏览:732
深圳天虹苹果电脑 浏览:969
网络总是异常断开 浏览:624
中级配置台式电脑 浏览:1032
中国网络安全的战士 浏览:644
同志网站在哪里 浏览:1429
版观看完整完结免费手机在线 浏览:1467
怎样切换默认数据网络设置 浏览:1118
肯德基无线网无法访问网络 浏览:1294
光纤猫怎么连接不上网络 浏览:1515
神武3手游网络连接 浏览:975
局网打印机网络共享 浏览:1009