基于SOCKET的多线程下载工具的开发

合集下载

socket编程 实验报告

socket编程 实验报告

socket编程实验报告《Socket编程实验报告》在计算机网络通信中,Socket编程是一种常见的通信方式,它可以在不同的计算机之间实现数据的传输和通信。

本次实验旨在通过Socket编程实现一个简单的客户端和服务器端通信,并对其进行测试和分析。

实验环境:- 操作系统:Windows 10- 开发工具:Visual Studio Code- 编程语言:Python实验步骤:1. 设计客户端和服务器端的通信协议2. 编写客户端和服务器端的代码3. 运行客户端和服务器端,并进行通信测试4. 分析通信过程中的数据传输情况实验结果:经过实验,我们成功实现了一个简单的客户端和服务器端通信程序。

在测试过程中,我们发现数据可以正常地在客户端和服务器端之间传输,而且通信过程稳定可靠。

分析:通过本次实验,我们深入了解了Socket编程的基本原理和实现方式。

Socket编程可以灵活地实现不同计算机之间的通信,为网络通信提供了重要的技术支持。

在实际应用中,Socket编程可以用于实现各种网络通信功能,如网页浏览、文件传输、视频流等。

总结:通过本次实验,我们对Socket编程有了更深入的了解,并掌握了基本的编程技巧和调试方法。

Socket编程是网络通信中的重要技术,对于计算机网络领域的学习和应用具有重要的意义。

希望通过今后的实践和学习,我们能够进一步深化对Socket编程的理解,为网络通信技术的发展做出贡献。

通过本次实验,我们对Socket编程有了更深入的了解,并掌握了基本的编程技巧和调试方法。

Socket编程是网络通信中的重要技术,对于计算机网络领域的学习和应用具有重要的意义。

希望通过今后的实践和学习,我们能够进一步深化对Socket编程的理解,为网络通信技术的发展做出贡献。

delphi7 serversocket的多线程模式的用法

delphi7 serversocket的多线程模式的用法

delphi7 serversocket的多线程模式的用法在 Delphi 7 中,使用 ServerSocket 组件实现多线程模式可以通过以下步骤进行:1. 在 Delphi 7 的主界面上,双击 "ServerSocket" 组件,将其添加到窗体上。

2. 在 "ServerSocket1" 组件的 "Properties" 属性中,设置"Active" 属性为 True,启用服务器端。

3. 在 "ServerSocket1" 组件的 "Properties" 属性中,设置 "Port" 属性为服务器监听的端口号。

例如,设置为 1234。

4. 在 "ServerSocket1" 组件的 "Events" 事件属性中添加以下代码,实现多线程处理客户端连接请求:```procedure TForm1.ServerSocket1ClientConnect(Sender: TObject; Socket: TCustomWinSocket);begin// 创建一个线程处理客户端连接TMyThread.Create(Socket);end;```5. 创建一个继承自 TThread 的自定义线程类,用于处理客户端连接和通信。

代码示例如下:```typeTMyThread = class(TThread)privateSocket: TCustomWinSocket;publicconstructor Create(ASocket: TCustomWinSocket);procedure Execute; override;end;constructor TMyThread.Create(ASocket: TCustomWinSocket); begininherited Create(False);Socket := ASocket;end;procedure TMyThread.Execute;varBuffer: array[0..1023] of AnsiChar;BytesReceived: Integer;begin// 处理客户端连接trywhile not Terminated dobegin// 接收客户端发送的数据BytesReceived := Socket.ReceiveBuf(Buffer, SizeOf(Buffer) - 1);Buffer[BytesReceived] := #0; // 末尾添加字符串结束标志// 在主线程执行 GUI 操作(如果需要)Synchronize(procedurebegin// 在此处更新界面或执行其他需要在主线程执行的操作 // Example: Memo1.Lines.Add(Buffer);end);// 处理接收到的数据// ...end;finally// 关闭客户端连接Socket.Close;Socket.Free;end;end;```在上述代码中,TMyThread 类继承自 TThread,通过重写Execute 方法,实现在独立线程中处理客户端连接和通信的逻辑。

基于UDP的socket程序,多线程操作,windows下C语言

基于UDP的socket程序,多线程操作,windows下C语言

char recvBuf[50]="\0";
int len=sizeof(SOCKADDR);
sockaddr_in addrClient;
while(1)
{
recvfrom(s,recvBuf,50,0,(SOCKADDR*)&addrClient,&len);
printf("他:\n %s\n",recvBuf);
#include <Winsock2.h>
#include <stdio.h>
#include <stdlib.h>
#include <windows.h>
#pragma comment(lib,"ws2_32.lib")
DWORD WINAPI ThreadProc(LPVOID lpParameter) //次线程,发消息
tcpaddr2.sin_family=AF_INET;
tcpaddr2.sin_port=htons(5050); //发送端口5050
tcpaddr2.sin_addr.S_un.S_addr=inet_addr(ip);
int len=sizeof(SOCKADDR);
while(1)
{
printf("请输入服务端ip地址:");//程序接收端
char ip[16]="\0";
scanf("%s",ip);
//创建socket2
SOCKET s2=socket(AF_INET,SOCK_DGRAM,IPPROTO_UDP);

基于Java Socket技术的多功能网络通信系统

基于Java Socket技术的多功能网络通信系统
F b 20 e . 07
文 章编 号 :10 5 4 ( 0 7 1—1 6— 4 0 6— 4 X 20 )0 3 0
基 于 J v o k t 术 的 多功 能 网络 通信 系统 a aS c e 技
罗 辉 ,覃 志 宇
( 西师 范大 学 计算 机科 学与信 息工程 学 院 ,广西 桂林 广 5 10 ) 404
直接与另外的客户程序进行通信.这类 软件 的最 线 程 ,为每 一个 在 线 用 户 分 配 一 个 客 户 线 程 ,实
大 问题 是 用 户 要 安 装 客 户 端 程 序 ,而且 不 具 备 跨 时处理 每个 客户 端 的事务 请求 . 平 台性 .另 外 ,这类 软 件 在 客户 间 传 送 文 件 时受
收稿 日期 :2 0 O — 8 0 6一 l O 基金项 目 :广西 自然科 学基 金资 助项 目 ( 桂科 自 0404 473 ) 作者 简介 :罗 辉 ( 9 3一) 16 ,男 ,工程 师 ,研 究方 向:远 程教 育 和网络技 术
图 1 系统 功能 结构
F g Sr cu eo y tm un to i.1 tu tr fsse f cin
交 流.
( ) 户 代 理 类 ( gn): 类 存 储 对 应 客 1客 A et 该
包 Sce 、 到 防火 墙 的 限制 ,有 时 并 不 能 进 行 客 户 间 的文 件 户 端 的 数 据 , 括 登 陆 用 户 名 、 okt 互 斥 锁 B S和 OC 已经 相 当成 熟 , 是 它 们 的成 功 B IQ 但 有特 定 的原 因 和 环 境 , 有 各 自的局 限性 . 笔 者 都 而 开发 的系统 采用 与其 不 完 全相 同的模 式 和 技术 . 本 系统 的 客户 端 用 Jv 小 程 序 (pl ) 实 现 , 通 aa ape 来 t 即 过 支持 Jv 浏览 器 下 载并 执 行 Jv plt 完 aa的 aaA pe来 成 客户 端操作 ; 服务 器端 采用 Jv p lao , 在 aaA pi t n充 ci 分 发挥 Jv aa技术 的 多线程 及平 台无 关 等优 点. 系统 采用 T P协议 与 服务器 转发 的技 术 , C 保证 系统通 讯 数据 传 输 的可 靠 性 , 且 客 户 间 发 送 文 件 不 会 像 并 OC IQ那样 受 到防火 墙 的限制 .

hutool socket用法

hutool socket用法

hutool socket用法Hutool是一个Java工具类库,其中包含了很多常用的工具类和方法。

其中,Hutool Socket是一个封装了Java原生Socket的工具类,可以方便地进行网络编程。

一、Hutool Socket的介绍Hutool Socket是一个基于Java原生Socket封装的工具类库,提供了一系列简单易用的网络编程方法。

它能够帮助开发者更加方便地进行Socket编程,并且支持TCP和UDP协议。

二、Hutool Socket的使用1. 创建ServerSocket对象在使用Hutool Socket进行网络编程之前,需要先创建一个ServerSocket对象。

创建ServerSocket对象的代码如下:```int port = 8888;ServerSocket server = ServerSocketUtil.createServerSocket(port);其中,port为端口号,可以根据实际情况进行设置。

ServerSocketUtil是Hutool Socket中提供的一个工具类,用于创建ServerSocket对象。

2. 监听客户端请求创建ServerSocket对象之后,需要监听客户端请求。

监听客户端请求的代码如下:```while (true) {// 等待客户端连接Socket socket = server.accept();// 处理客户端请求handleRequest(socket);}```其中,server.accept()方法会阻塞当前线程直到有客户端连接进来。

一旦有客户端连接进来后,就会返回一个新建立的Socket对象,并且可以通过这个对象来进行数据传输。

3. 处理客户端请求在监听到客户端请求之后,需要对客户端请求进行处理。

处理客户端请求的代码如下:```private static void handleRequest(Socket socket) throws Exception {InputStream inputStream = socket.getInputStream();OutputStream outputStream = socket.getOutputStream(); // 读取客户端发送的数据byte[] buffer = new byte[1024];int len = inputStream.read(buffer);String request = new String(buffer, 0, len);System.out.println("收到客户端消息:" + request);// 发送响应数据给客户端String response = "Hello, Client!";outputStream.write(response.getBytes());}```其中,socket.getInputStream()方法用于获取输入流,可以通过输入流来读取客户端发送的数据。

基于SOCKET的多线程下载工具的开发

基于SOCKET的多线程下载工具的开发
m utt ra i g d li e d n ow noa n tu e o d do n o d t e d fee i s o l ulih e dng i t uc st e h l d i sr m ntc ul w l a h i r ntknd ff e by m tt r a i n ne,s h a i h doc e s pit e 、 s ng nd S on . um nt、 cur s o sa O The ts h ets owst a he d h tt ownl d t ol a e fl w n o d s e e e tv l oa o sm k e do l a pe d f c ey i i i mpr e . ov d
ba e oc t s d on s ke
Z o u we Ya i,Z a Jy n ag e h uX e i hX n h o u u ,Y n i , W
【 yL b rtr fn t me tt nS in e&Dy a cM es rme tNot ie t f ia, Ke a oaoyo Is u nai c c r o e n mi au e n ( r Unv mi o Chn ) h y
a d wi d ws o k t u ci n t ns e p o es r a zn e fe d wn o d b e n Hy e x a s rPr t c l n n o c e n t O f i t r c s e l i g t l o l a a d o p rTe tTrn f o o a, s f o i h h , i h i s e An y c e t g a d wr i g t r a n t n r a z ef em ut— h e d d wn o d n osd v l p e t v i t e e d b r ai n i n h e d f ci e l e t l t r a o l a g t l e eo m n . a a s n t u o i h i l i i o To l h

SocketToolV4.0使用说明

SocketToolV4.0使用说明

SocketTool V4.0使用说明版权申明:SocketTool V4.0是基于以往SocketTool基础上开发,Smset唯一拥有完全的版权。

使用者可以免费使用SocketTool,以及基于JavaScript编程进行二次开发,实现定制的测试工具。

使用者无权擅自修改SocketTool在初始启动界面中自带的提示信息,包括:软件名称,软件版本号,开发者名称,技术交流群号等信息。

TCP/UDP Socket调试工具提供了TCP Server,TCP Client,UDP Server,UDP Client,UDP Group五种Socket调试方案。

下面是一份简要的使用流程:TCP通信测试:1)创建TCP Server选中左方的TCP Server,然后点击”创建”按钮,软件弹出监听端口输入框。

输入监听端口后,即创建了一个在指定端口上进行监听的TCP Server Socket。

TCP Server Socket创建时,软件会自动启动TCP Server Socket处于监听状态:2)创建TCP Client选中左方的TCP Client,然后点击”创建”按钮,软件弹出输入框:确认后,软件即创建了一个TCP Client Socket.创建TCP Client Socket时,软件不会自动进行连接Socket的操作.2)连接Socket点击刚创建的TCP Client,右方会出现其相关操作面板,点击“连接”按钮进行Socket连接。

这时,TCP Client就建立了与TCP Server的连接。

在TCP Server下面,自动增加了一个与该连接对应的Socket。

3)数据收发在连接建立成功后,可以进行数据收发的测试:当鼠标点中每个Socket时,软件都会在右方提供操作该Socket的面板.在面板里提供了数据收发的窗口。

其中下面的是数据发送窗口.点中TCP Server方的Socket,然后在操作面板中输入数据12345,然后点击发送:在TCP Client端的Socket即可收到数据,可以点击TCP Client Socket,进行察看.反之,TCP Client也可以向TCP Server发送数据关于十六进制HEX格式的发送:把显示十六进制的选择项选中,然后在数据发送窗口即处于HEX输入模式了,在里面直接输入HEX格式内容:如313233,然后点击发送数据按钮:在TCP Server端的Socket即可收到数据123:UDP通信测试:分别创建UDP Server和UDP Client:UDP Server刚创建成功时,其对方IP及对方端口都是空的.必须要收到UDP Client先发送的数据包后,UDP Server才确定对方IP及对方端口,并进行数据包的发送.UDP Client则在创建的时候及指定了对方IP及对方端口号,因此,两个UDP Client之间也是可以通信的.而UDP Server则必须与UDP Client才行进行通信.先由UDP Client发送数据:UDP Servers收到数据在UDP Server收到过UDP Client的数据后,其对方IP地址和UDP端口均可确定下来,然后UDP Server也可以向UDP Client发送数据了:关于UDP广播的测试:在UDP Client创建时,可以选择是否创建UDP广播:点击广播地址后,软件会自动计算广播地址:点击确定后,创建的UDP Socket发送的就是UDP广播包了.UDP组播测试1)创建UDP组选中左方的UDP Group,然后点击”创建”按钮,软件弹出组播地址即组播端口输入框。

Windows开发工程师岗位面试题及答案(经典版)

Windows开发工程师岗位面试题及答案(经典版)

Windows开发工程师岗位面试题及答案1.请介绍一下您在Windows开发方面的经验。

答:我在Windows开发领域有X年的经验。

我曾参与开发过基于Windows的桌面应用程序,涉及UI设计、后端逻辑和与操作系统交互的模块。

2.请详细描述您在Windows应用程序界面设计方面的经验。

答:在应用程序界面设计方面,我使用过WPF和WinForms等工具,设计用户友好的界面。

举例来说,我曾开发一个音乐播放器,通过WPF实现了现代化的界面,包括动画效果和自定义控件。

3.您在多线程编程方面有何经验?答:我熟悉在Windows环境下使用多线程进行并发编程。

在一个视频编辑软件项目中,我实现了多线程视频渲染,提升了性能和用户体验。

4.请解释一下Windows消息循环机制。

答:Windows消息循环是应用程序与操作系统交互的基础。

应用程序通过循环不断地接收、分发和处理消息,包括用户输入和系统事件。

例如,WM_PAINT消息触发界面的重绘。

5.如何处理Windows应用程序中的异常?答:异常处理对于稳定的应用程序至关重要。

我会使用trycatch 块捕获可能的异常,并在适当的地方记录日志。

在一个文件管理器项目中,我实现了针对文件操作的异常处理,确保应用程序不会因为意外情况崩溃。

6.请谈谈您在Windows注册表操作方面的经验。

答:注册表是Windows配置和设置的关键部分。

我曾经开发过一个系统优化工具,使用C编写了操作注册表的模块,允许用户自定义系统设置以提升性能。

7.如何优化Windows应用程序的启动时间?答:优化启动时间需要减少不必要的资源加载和初始化。

我会延迟加载非必要模块,使用异步加载,以及优化资源的预加载。

在一个文本编辑器项目中,我成功减少了启动时间,提升了用户体验。

8.请谈谈您对COM(ComponentObjectModel)的理解。

答:COM是一种Windows平台上的组件技术,用于实现不同组件之间的通信和交互。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

2011年8月第8期电子测试ELECTRONIC TESTAug.2011No.8基于SOCKET的多线程下载工具的开发周学威,闫鑫,赵榉云,杨薇(中北大学 仪器科学与动态测试教育部重点实验室,山西 太原 030051)摘要:在Windows编程中,为了提高代码的时、空效率,广泛采取多线程技术。

本文以多线程技术的应用为研究背景,实现了多线程的一个应用:多线程文件下载。

该下载工具以VC++6.0为开发平台,利用Windows 套接字函数进行网络编程,实现了基于HTTP协议的文件下载过程,并通过创建和编写线程函数实现了文件的多线程下载工具的开发。

利用该下载工具可以对网上的文档、图片、歌曲等各种文件实现多线程下载。

经测试表明,该下载工具使文件的下载速率得到了有效提高。

关键词:多线程;HTTP协议;Windows套接字函数中图分类号: TN915.85 文献标识码: ADevelopment of multi-thread downlodeing toolbased on socketZhou Xuewei, Yan Xin, Zhao Juyun, Yang Wei(Key Laboratory of Instrumentation Science & Dynamic Measurement (North University of China),Ministry of Education, Taiyuan 030051, China)Abstract: In order to improve code’s efficiency both in time and space, Multi-thread technology widely used on Windows programs. This thesis’s background was the apply of the multithreading technology, realize an application of multithreading technology: The Multi-Thread download file . This tool used VC++6.0 as the development space and windows socket function to finish the process, realizing the file download based on Hyper Text Transfer Protocal, And by creating and writing thread function realize the file multi-thread downloading tools development.To avail these multithreading download instrument could download the different kinds of file by multithreading in net, such as the documents、pictures、songs and so on .The test shows that the download tools make file download speed effectively improved.Keywords: multi-thread; hyper text transfer protocal; Windows socket function0 引言多线程就是允许单个程序创建多个并行执行的线程来完成各自的任务,它在多任务和实时处理等方面具有重要意义,特别是在网络应用程序中,可以提高带宽利用率和程序反应速度[1]。

为了达到下载大型网站的目的,在编写离线浏览软件的过程中,需要下载大量的Web文件,其中一个技术要点就是多线程下载问题。

是否具有“多线程下载”技术、甚至能支持多少个下载线程都成了人们评测下载软件的要素[2]。

本文以SOCKET技术为依托,基于VC++6.0环境,采用HTTP协议,通过编写客户端应用程序,对文件的多线程下载进行了设计与实现。

1 设计思路多线程下载的前提是网络的连通和通信软件与协议的应用。

下载文件的过程是客户端与服务器的交互的过程,在下载过程中采用的传送文件的协议有多种,本程序的设计采用了HTTP 协议[3]。

HTTP 即超文本传输协议,当客户端与服务器建立一个TCP 连接后,客户端就可以发送请求并读取服务器的消息响应。

在网络通信环境下,Socket 作为应用程序和网络之间的标准接口,可以看成在两个程序进行通讯连接中的一个端点,是连接应用程序和网络驱动程序的桥梁[4]。

MFC 是VC 编程环境最重要的组成部分,它为用户提供了一大批预先定义的类和成员函数,封装了大量的Windows API [5]。

为了简化套接字网络编程,更方便的利用Windows 系统的消息驱动机制,充分利用MFC 的优势,本设计采用基于MFC 对话框的架构。

由于本设计基于HTTP 协议,采用MFC WinSock 中的CSocket 套接字类进行编程,由客户端直接发送请求到服务器端进行资源的下载,因此只需编写客户端网络应用程序[6]。

首先,根据HTTP 协议,构造请求消息头,向Web 服务器发送资源下载请求,当服务器返回请求成功后,再分别为每个线程构造下载请求,通过CSocket 编程向服务器传输请求,实现各个线程的下载;然后,启动线程函数,包括四个下载线程用以实现多线程下载和一个监听线程来实时记录下载状态;最后当各个下载线程都结束时,进行文件合并,同时删除临时文件以完成下载任务[7]。

2 具体实现及主要函数2.1 函数实现过程实现过程可概括为:利用Socket 套接字发送消息,在发送的消息中要构造请求消息字段,用HTTP 协议向服务器发送下载请求,通过服务器的返回指令,实现资源下载,并通过启动线程函数来加入多线程技术,从而实现数据的多线程下载。

其函数调用过程如图1所示。

要实现下载,必须由客户端向服务器发送请求消息,这是HTTP 的核心。

如图1所示,开始下载后,首先要获得要下载文件的URL,接着调用ParseURL 函数判断要下载文件的URL 是否合理,若合理,则会由SendRequest()函数向主线程发送HTTP 请求消息,在调用GetInfo 函数获取HTTP 服务器成功响应的消息后,会为每个下载线程分配要下载的字节数。

这样,开始下载任务成功实现后,会调用CDownloadDlg 类中的CreateThread()函数中,创建线程,DownloadThread (LPVOID lpParam)是新建线程的入口函数,ThreadFunc(index)函数主要进行下载过程中每个子线程的套接字编程,通过编写向服务器发送请求消息的标题字段的代码,利用HTTP 协议的下载原理实现每个子线程的下载。

2.2 主要函数说明(1)创建下载线程,指向DownloadThread()这个线程函数的入口:m_hThread[i]=::CreateThread(NULL, 0, DownloadThread, (LPVOID)&http, 0, &dwThread);(2)创建监听线程,指向监听线程Notify()函数的入口,用以对各线程的下载状态和进度进行监听:m_hNotify=::CreateThread(NULL,0,Notify,(LPVOID)this,0,&dwNotify);(3)DownloadThread()函数:DWORD WINAPI DownloadThread(LPVOID lpParam);该函数会通过公有的继承方式继承ThreadFunc(index)函数,ThreadFunc(index)函数实现的主要功能是:每个子线程向服务器发送HTTP 请求消息,实现每个子线程下载任务的完成。

(4)Notify()函数DWORD WINAPI Notify(LPVOID lpParam);该函数中,会通过公有的继承方式继承在类CDownloadDlg 中的Finish()函数,判断每个子线程是否完成下载,并进行下载文件的保存。

(5)ThreadFunc()函数在ThreadFunc 函数中,先要创建客户端的套接字对象,图1 多线程下载的函数调用过程对每个要下载的子线程,设置了HTTP 会话中的请求消息字段,通过由客户端向服务器发送请求消息实现每个子线程的下载。

对于多线程下载,在请求消息的标题字段增加了Range,用于请求服务器返回指定大小的字段,其大小采用了数据分片技术来确定[8]。

编写的语句为strRange.Format("Range: bytes=%d-%d\r\n", m_state.range[2 * index], m_state.range[2 * index + 1]),其中index 是线程的序列号。

3 系统运行程序设计完成后,编译并运行,在生成对话框后,选择要下载文件的URL,将其直接拖入GetList 列表控件中,点击开始按钮,开始下载。

下载过程如图2所示,可见4个线程同步运行,实现了4个线程下载同一文件的多线程下载;下载完成时,弹出提示窗口提示“多线程下载完成”,如图3所示。

此时单击提示窗口中的“确定”按钮,4个.jpg 临时文件将合并成一个JPEG 图像,至此便完成了多线程文件的下载。

图2 正在下载界面图3 下载完成界面4 结束语本文对多线程数据传输进行了详细分析和总体设计,对多线程下载的原理、具体实现和应用进行了探讨,采用了面向对象的设计方法,应用多线程技术,通过Windows 套接字函数,直接向Web 服务器发送请求,用VC++6.0 MFC 中的CSocket 类编写客户端程序,实现了基于超文本传输协议HTTP 的文件下载,通过创建和编写线程函数实现了多线程传输,经测试,下载速度有一定的改善。

参考文献[1] 郑阿奇.Visual C++实用教程[M].3版.北京:电子工业出版社,2008.[2] 毛光喜.多线程下载工具的开发与应用[J].计算机应用与软件,2006,23(7):136-138.[3] Charles Wright. VisualC++程序员使用大全[M].邓劲生,张晓明 译.北京:中国水利水电出版社,2001.[4] 蒋东兴.WindowsSockets 网络程序设计大全[M].北京:清华大学出版社,1999.[5] 李晶媛.基于HTTP 协议的多线程下载工具的实现[J].电脑开发与应用,2009,22(10):52-54.[6] 孙鑫,余安萍.VC++深入详解[M].北京:电子工业出版社,2007.[7] 赵辉,叶子青.VisualC++系统开发实例精粹[M].3版.北京:人民邮电出版社,2006.[8] 孙辉霞.基于VC++的多线程编程实现[J].中国电子商务,2010(3):61-62.作者简介:周学威,硕士研究生,研究方向为无线自组网与路由技术,E-mail:huofengniao@。

相关文档
最新文档