社会化媒体营销

【+】

基于WinSock的简单TCP网络编程实验报告

冰女烦恼

实验报告

实验课程名称: 通信软件基础实验课

院: 软件工程学院

业: 软件工程

指导教师:

报告人姓名:

号:

级:

期:

实验

成绩

实验项目名称

基于WinSock的简单TCP网络编程

一、实验目的与要求:

1、学习和掌握Socket编程的面向连接编程模型。

2、学习和掌握基于WinSockTCP网络编程方法。

二、实验设备及软件:

笔记本电脑、Window 7操作系统、Microsoft Visual Studio 2012

三、实验方法(原理、流程图)

流程图:

四、实验过程、步骤及内容

实验代码:

server.h

#define MAX_CLIENT 10 //同时服务的client数目上限

#define MAX_BUF_SIZE 65535 //缓存区的大小

const u_short UDPSrvPort = 2345; //ServerUDP端口

const char START_CMD[] = "START";

const char GETCURTIME_CMD[] = "GET CUR TIME";

//传递给TCP线程的结构化参数

struct TcpThreadParam

{

SOCKET socket;

sockaddr_in addr;

};

DWORD WINAPI TcpServeThread(LPVOID lpParam); //TCP线程的线程函数

DWORD WINAPI UdpServer(LPVOID lpParam); //UDP服务器线程

server.cpp

#include "stdafx.h"

#include "iostream.h"

#include "stdio.h"

#include "string.h"

#include "time.h"

#include "WinSock2.h"

#include "Windows.h"

#include "server.h"

#pragma comment (lib, "Ws2_32.lib")

#pragma pack(1) //结构在存储时按字节对齐

long TcpClientCount = 0;

int main(int argc, char* argv[])

{

////命令行参数

//if(argc != 2)

//{

// cerr << "Worng format!\nCorrect usage: Server.exe ";

// return -1;

//}

//初始化winsock2环境

WSADATA wsa;

if (WSAStartup(MAKEWORD(2, 2), &wsa) != 0)

{

cerr << "\nFailed to initialize the winsock 2 stack\n"

<< "error code: " << WSAGetLastError() << endl;

return -1;

}

//创建UDP服务器

DWORD dwThreadId;

CreateThread(NULL, 0, UdpServer, NULL, 0, &dwThreadId);

//创建用于侦听的TCP Server Socket

SOCKET ListenSocket = socket(AF_INET, SOCK_STREAM, 0);

//获取TCP端口号

u_short ListenPort = (u_short)atoi(argv[1]);

//获取本机名

char hostname[256];

gethostname(hostname, sizeof(hostname));

//获取本地IP地址

hostent *pHostent = gethostbyname(hostname);

//填充本地TCP Socket地址结构

SOCKADDR_IN ListenAddr;

memset(&ListenAddr, 0, sizeof(SOCKADDR_IN));

ListenAddr.sin_family = AF_INET;

ListenAddr.sin_port = htons(ListenPort);

ListenAddr.sin_addr = *(in_addr*)pHostent->h_addr_list[0];

//绑定TCP端口

if (bind(ListenSocket, (sockaddr*)&ListenAddr, sizeof(ListenAddr)) == SOCKET_ERROR)

{

cerr << "\nFailed to bind the ListenSocket\n"

<< "error code: " << WSAGetLastError() << endl;

return -1;

}

//

if ((listen(ListenSocket, SOMAXCONN)) == SOCKET_ERROR)

{

cerr << "\nFailed to listen the ListenSocket\n"

<< "error code: " << WSAGetLastError() << endl;

return -1;

}

cout << "TCP Server Started On TCP Port: "<< ListenPort << endl << endl;

SOCKET TcpSocket;

SOCKADDR_IN TcpClientAddr;

while (TRUE)

{

//接受客户端连接请求

int iSockAddrLen = sizeof(sockaddr);

if ((TcpSocket = accept(ListenSocket, (sockaddr*)&TcpClientAddr, &iSockAddrLen)) == SOCKET_ERROR)

{

cerr << "\nFailed to accept the client TCP Socket\n"

<< "error code: " << WSAGetLastError() << endl;

return -1;

}

//TCP线程数达到上限,停止接受新的Client

if (TcpClientCount >= MAX_CLIENT)

{

closesocket(TcpSocket);

cout << "Connection from TCP client "<< inet_ntoa(TcpClientAddr.sin_addr) << ":" << ntohs(TcpClientAddr.sin_port) << " refused for max client num\n" << endl;

continue;

}

cout << "Connection from TCP client "<< inet_ntoa(TcpClientAddr.sin_addr) << ":" << ntohs(TcpClientAddr.sin_port) << " accepted\n" << endl;

TcpThreadParam Param;

Param.socket = TcpSocket;

Param.addr = TcpClientAddr;

//创建TCP服务线程

DWORD dwThreadId;

CreateThread(NULL, 0, TcpServeThread, &Param, 0, &dwThreadId);

InterlockedIncrement(&TcpClientCount);

cout << "Current Number of TCP Clients: " << TcpClientCount << '\n' << endl;

}

closesocket(ListenSocket);

WSACleanup();

return 0;

}

//TCP服务线程

DWORD WINAPI TcpServeThread(LPVOID lpParam)

{

char ServerTCPBuf[MAX_BUF_SIZE];

//获取线程参数

SOCKET TcpSocket = ((TcpThreadParam*)lpParam)->socket;

SOCKADDR_IN TcpClientAddr = ((TcpThreadParam*)lpParam)->addr;

//输出提示信息

cout<<"Thread: "<< GetCurrentThreadId() << " is serving client from " << inet_ntoa(TcpClientAddr.sin_addr) << ":" << ntohs(TcpClientAddr.sin_port) << endl << endl;

//发送端口号+"START"

sprintf(ServerTCPBuf, "%5d%s", UDPSrvPort, START_CMD);

send(TcpSocket, ServerTCPBuf, strlen(ServerTCPBuf), 0);

cout << "Waiting for command from Client(s)..." << endl << endl;

int TCPBytesReceived;

time_t CurSysTime;

while (TRUE)

{

//读取client发来的请求命令: "GET CUR TIME"

memset(ServerTCPBuf, '\0', sizeof(ServerTCPBuf));

TCPBytesReceived = recv(TcpSocket, ServerTCPBuf, sizeof(ServerTCPBuf), 0);

//TCPBytesReceived值为0表示client端已正常关闭连接

//TCPBytesRecieved值为SOCKET_ERROR则表示socket的状态不正常,无法继续数据通讯

//两种情况下都表明本线程的任务已结束,需要退出

if (TCPBytesReceived == 0 || TCPBytesReceived == SOCKET_ERROR)

{

cout << "Client from " << inet_ntoa(TcpClientAddr.sin_addr) << ":" << ntohs(TcpClientAddr.sin_port) << " disconnected. Thread: " << GetCurrentThreadId() <<" is ending" << endl << endl;

break;

}

//收到的字符串是否为命令:"GET CUR TIME"

if (strcmp(ServerTCPBuf, GETCURTIME_CMD) != 0)

{

cout << "Unknowm command from Client " << inet_ntoa(TcpClientAddr.sin_addr) << endl << endl;

continue;

}

cout << "Request for Current time from client " << inet_ntoa(TcpClientAddr.sin_addr) << ":" << ntohs(TcpClientAddr.sin_port) << " by TCP" << endl << endl;

//获取系统时间并发送给client

time(&CurSysTime);

memset(ServerTCPBuf, '\0', sizeof(ServerTCPBuf));

strftime(ServerTCPBuf, sizeof(ServerTCPBuf), "%Y-%m-%d %H:%M:%S", localtime(&CurSysTime));

send(TcpSocket, ServerTCPBuf, strlen(ServerTCPBuf), 0);

cout << "Server Current Time: " << ServerTCPBuf << '\n' << endl;

}

InterlockedDecrement(&TcpClientCount);

closesocket(TcpSocket);

return 0;

}

//UDP服务器线程

DWORD WINAPI UdpServer(LPVOID lpParam)

{

char ServerUDPBuf[MAX_BUF_SIZE]; //UDP Buffer

SOCKADDR_IN UDPClientAddr; //存储Client的地址信息

//创建UDP server socket

SOCKET UDPSrvSocket = socket(AF_INET, SOCK_DGRAM, 0);

//获取本机名

char hostname[256];

gethostname(hostname, sizeof(hostname));

//获取本地IP地址

hostent *pHostent = gethostbyname(hostname);

//填充本地UDP Socket地址结构

SOCKADDR_IN UDPSrvAddr;

memset(&UDPSrvAddr, 0, sizeof(SOCKADDR_IN));

UDPSrvAddr.sin_family = AF_INET;

UDPSrvAddr.sin_port = htons(UDPSrvPort);

UDPSrvAddr.sin_addr = *(in_addr*)pHostent->h_addr_list[0];

//绑定UDP端口

if (bind(UDPSrvSocket, (sockaddr*)&UDPSrvAddr, sizeof(UDPSrvAddr)) == SOCKET_ERROR )

{

cerr << "bind() failed for UDPSrvSocket\n"

<< "error code: " << WSAGetLastError() << endl;

return -1;

}

cout<<"UDP Server Started On UDP Port: " << UDPSrvPort << endl << endl;

while (TRUE)

{

memset(ServerUDPBuf, '\0', sizeof(ServerUDPBuf));

//接收UDP请求

int iSockAddrLen = sizeof(sockaddr);

if ((recvfrom(UDPSrvSocket, ServerUDPBuf, sizeof(ServerUDPBuf), 0, (sockaddr*)&UDPClientAddr, &iSockAddrLen)) == SOCKET_ERROR)

{

cerr << "recvfrom() failed for UDPSrvSocket\n"

<< "error code: " << WSAGetLastError() << endl;

continue;

}

cout << "Client Command: Echo\n\n";

cout << "\"" << ServerUDPBuf<< "\"" << " received from " << inet_ntoa(UDPClientAddr.sin_addr) << ":" << ntohs(UDPClientAddr.sin_port) << " by UDP" << endl << endl;

//ECHO

iSockAddrLen = sizeof(sockaddr);

if ((sendto(UDPSrvSocket, ServerUDPBuf, strlen(ServerUDPBuf), 0, (sockaddr*)&UDPClientAddr, iSockAddrLen)) == SOCKET_ERROR )

{

cerr << "sendto() failed for UDPSrvSocket\n"

<< "error code: " << WSAGetLastError() << endl;

continue;

}

cout << "Echo " << "\"" << ServerUDPBuf << "\"" << " to clinet " << inet_ntoa(UDPClientAddr.sin_addr) << ":" <" by UDP" << endl << endl;

}

return 0;

}

client.exe

#include "stdafx.h"

#include "WinSock2.h"

#include "iostream.h "

#include "stdio.h"

#pragma comment (lib,"Ws2_32.lib")

#define MAX_BUF_SIZE 65535

char ClientBuf[MAX_BUF_SIZE];

const char START_CMD[] = "START";

const char GETCURTIME_CMD[] = "GET CUR TIME";

//输出用户选择界面

void UserPrompt()

{

cout << "Input the corresponding Num to select what you want the program to do" << endl << endl

<< "\t1. Get current time(TCP)" << endl

<< "\t2. Echo Mode(UDP)" << endl

<< "\t3. Exit the program" << endl << endl

<< "Enter Your choice: ";

}

int main(int argc, char* argv[])

{

unsigned short ServerUDPPort;

SOCKET cTCPSocket,cUDPSocket;

WSADATA wsadata;

SOCKADDR_IN TCPServer,UDPServer,RecvFrom;

int RecvFromLength=sizeof(RecvFrom);

char UserChoice;

char portnum[5];

unsigned long BytesReceived,BytesSent;

int RetValue;

//命令行参数

if (argc != 3)

{

cout<<"Worng format!"<"Correct usage: Client.exe "< return 1;

}

u_long ServerIP = inet_addr(argv[1]);

u_short ServerTCPPort = (u_short)atoi(argv[2]);

//初始化winsock

if( ( RetValue=WSAStartup(MAKEWORD(2,2),&wsadata) ) !=0 )

{

printf("WSAStartup() failed with error %d\n", RetValue);

return 2;

}

//创建TCP Socket

if( (cTCPSocket=WSASocket(AF_INET,SOCK_STREAM,0,NULL,0,WSA_FLAG_OVERLAPPED) ) ==INVALID_SOCKET)

{

printf("WSASocket() for cTCPSocket failed with error %d\n" ,WSAGetLastError() );

return 3;

}

//创建UDP Socket

if( (cUDPSocket=WSASocket(AF_INET,SOCK_DGRAM,0,NULL,0,WSA_FLAG_OVERLAPPED) ) ==INVALID_SOCKET)

{

printf("WSASocket() for cUDPSocket failed with error %d\n" ,WSAGetLastError() );

return 4;

}

TCPServer.sin_family=AF_INET;

TCPServer.sin_port=htons(ServerTCPPort);

TCPServer.sin_addr.S_un.S_addr=ServerIP;

//通过TCP Socket连接server

if ((RetValue=WSAConnect(cTCPSocket,(sockaddr *)&TCPServer,sizeof(TCPServer),NULL,NULL,NULL,NULL) )==SOCKET_ERROR)

{

printf("WSAConnect() failed for cTCPSocket with error %d\n",WSAGetLastError() );

printf("Can't connect to server.\n");

return 5;

}

//server建立连接后读取Server发送过来的Server UDP端口和"START"

BytesReceived=recv(cTCPSocket,ClientBuf,sizeof(ClientBuf),0 );

if (BytesReceived == 0 || BytesReceived == SOCKET_ERROR)

{

cout<"Server refused the connection or recv failed"< return 6;

}

memcpy(portnum,ClientBuf,sizeof(portnum));

ServerUDPPort=(u_short)atoi(portnum);

if (strcmp(START_CMD,ClientBuf+5)!=0)

{

cout<"Server did not return right beginning indicator"< return 6;

}

else

{

cout<"OK, NOW the server is ready for your service!"< }

UDPServer.sin_family=AF_INET;

UDPServer.sin_port=htons(ServerUDPPort);

UDPServer.sin_addr.S_un.S_addr=ServerIP;

while(TRUE)

{

//输出提示信息

UserPrompt();

cin>>UserChoice;

switch(UserChoice)

{

case '1'://通过TCP得到server的系统时间

//发送命令

memset(ClientBuf,'\0',sizeof(ClientBuf));

sprintf(ClientBuf,"%s",GETCURTIME_CMD);

if ((BytesSent=send(cTCPSocket,ClientBuf,strlen(ClientBuf),0) )==SOCKET_ERROR)

{

printf("send() failed for cTCPSocket with error %d\n",WSAGetLastError() );

printf("Can not send command to server by TCP.Maybe Server is down.\n");

return 7;

}

//读取server发来的系统时间并显示

memset(ClientBuf,'\0',sizeof(ClientBuf) );

if ((BytesReceived=recv(cTCPSocket,ClientBuf,sizeof(ClientBuf),0) )==SOCKET_ERROR)

{

printf("recv() failed for cTCPSocket with error %d\n",WSAGetLastError() );

printf("Can not get server current systime.Maybe Maybe Server is down.\n");

return 8;

}

cout<<"Server Current Time: "< break;

case '2': //通过UDP实现ECHO

//提示用户输入文本

memset(ClientBuf,'\0',sizeof(ClientBuf) );

cout<<"请输入任意文本信息,按回车键后将发送至Server."< gets(ClientBuf);

//发送文本

if ((BytesSent=sendto(cUDPSocket,ClientBuf,strlen(ClientBuf),0,(sockaddr *)&UDPServer,sizeof(UDPServer) ) ) ==SOCKET_ERROR)

{

printf("sendto() failed for cUDPSocket with error %d\n",WSAGetLastError() );

printf("Can not send message by UDP.Maybe Server is down.\n");

return 9;

}

//读取ECHO

memset(ClientBuf,'\0',sizeof(ClientBuf) );

if ((BytesReceived=recvfrom(cUDPSocket,ClientBuf,sizeof(ClientBuf),0,(sockaddr *)&RecvFrom, &RecvFromLength ) ) ==SOCKET_ERROR)

{

printf("recvfrom () failed for cUDPSocket with error %d\n",WSAGetLastError() );

printf("Can't get Echo Reply from server by UDP.Maybe Server is down.\n");

return 10;

}

//ECHO是否来自Server

if(UDPServer.sin_addr.S_un.S_addr==RecvFrom.sin_addr.S_un.S_addr &&UDPServer.sin_port==RecvFrom.sin_port)

{

cout<<"Get Echo From Server: "< }

else

{

cout<<"NO Echo From Server"< }

break;

case '3': //释放资源,退出程序

closesocket(cTCPSocket);

closesocket(cUDPSocket);

WSACleanup();

cout<<"program exit"< return 10;

default:

cout<<"Wrong choice ,should be 1,2 or 3"< }

}

return 11;

}

五、实验数据(现象)处理分析

六、实验结论:

通过这次试验学会了客户端与服务端的建立联系,掌握了两者之间的联系。

七、指导教师批阅意见:

成绩评定:

指导教师签字:

八、备注:注册信息填写充分

加载 全文

“基于WinSock的简单TCP网络编程实验报告”相关信息

基于WinSock的简单TCP网络编程实验报告winsock tcp,winsock编程,vb winsock编程实例,winsock网络编程经络,winsock编程实例,winsock网络编程,winsock2编程,winsock编程源代码,c winsock编程,netsh winsock reset,winsock,winsock是什么,winsock修复,winsock reset,重置winsock
基于WinSock的简单TCP网络编程实验报告

基于WinSock的简单TCP网络编程实验报告

报告人姓名: 学班学号: 级: 期: 实验 成绩 实验项目名称 基于 WinSock 的简单 TCP 网络编程 一、实验目的与要求: 1、学习和掌握 Socket 编程的面向连接编程...

贡献者:冰女烦恼

网络编程_基于TCP的简易聊天室_实验报告

网络编程_基于TCP的简易聊天室_实验报告

网络编程_基于TCP的简易聊天室_实验报告_计算机软件及应用_IT/计算机_专业资料。...<WinSock2.h> #include <string> #include #include "ClientInfo.h" using...

贡献者:泪水冲破容颜

网络编程 基于TCP的简易聊天室 实验报告

网络编程 基于TCP的简易聊天室 实验报告

网络编程 基于TCP的简易聊天室 实验报告_调查/报告_表格/模板_实用文档。网络编程...<WinSock2.h> #include <string> #include #include "ClientInfo.h" using...

贡献者:小小book吧

基于WinSock API的TCP网络程序的编写与分析

基于WinSock API的TCP网络程序的编写与分析

基于WinSock API的TCP网络程序的编写与分析_计算机软件及应用_IT/计算机_专业资料。网络协议编程实验报告TCPIP 《网络协议编程》实验报告单 实验一报告单班 级 ...

贡献者:hemeng霞

Windows网络编程《一》——WinSock编程

Windows网络编程《一》——WinSock编程

Windows网络编程《一》——WinSock编程 隐藏>> WinSock 编程实验报告 班级:10 网...实验内容与分析设计: 编写一个基于某种 I/O 方法的 TCP 服务器和 TCP 客户...

贡献者:smilehthl

简单TCP通信程序设计实验报告

简单TCP通信程序设计实验报告

简单TCP通信程序设计实验报告_计算机软件及应用_IT/计算机_专业资料。计算机网络与...四,实验内容与步骤《server》 1,加载 WinSock 动态链接库 函数原型: int...

贡献者:9号同学爱唱歌

网络编程文件传输实验报告

网络编程文件传输实验报告

网络工程黄梅根实验室名称: 任课教师: 网络编程 网络编程 基于 TCP 的网络文件...四、 源代码服务器端 #include <WINSOCK2.H> #include <stdio.h> #pragma ...

贡献者:源缘_园

基于TCP的文件传输实验报告

基于TCP的文件传输实验报告

基于TCP的文件传输实验报告_IT/计算机_专业资料。介绍关于以TCP为基础的文件传输...协议, 控件,网络编程,文件传输,断点续传。 关键词 :TCP/IP 协议,Winsock 控件...

贡献者:方芳叶

TCP、IP网络环境编程实验报告《1-4》

TCP、IP网络环境编程实验报告《1-4》

TCP、IP网络环境编程实验报告《1-4》_工学_高等教育_教育专区。计算机与信息学院...基于 WinSock 2 的 IP 多播应用程序 成绩 指导教师 林要华 林要华 林要华...

贡献者:福建好友

网络编程实验报告

网络编程实验报告

网络编程实验报告_计算机软件及应用_IT/计算机_专业资料。实验一 TCP Socket API...《2,2》,&wsd》; // 加载协议,使用 Winsock 2.2 版 m_client = socket《...

贡献者:万剑归宗王

VisioTCP

TCP的定义及作用

TCP的定义及作用

TCP的定义及作用_计算机硬件及网络_IT/计算机_专业资料。TCP 的定义及作用什么是 TCP/IP 网络协议? 网络协议就是网络中《包括互联网》传递、管理信息的一些规范。...

贡献者:zhangmin199518

TCP 头部选项功能详解

TCP 头部选项功能详解

TCP 头部选项功能详解_互联网_IT/计算机_专业资料。TCP 头部选项功能详解 TCP 头部的选项部分是 TCP 为了适应复杂的网络环境和更好的服务应用层而进行设计的。TCP...

贡献者:小哥啊_2009

TCP协议实例分析_图文

TCP协议实例分析_图文

8、 下面是浏览器确认 Apache 发送的要求释 放链接的 TCP 报文: A 1 2 3 4 28 00 cb 03 B d2 28 32 fb C 44 5d 19 15 D c7 09 85 9e E d...

贡献者:阿杰在此

TCP

TCP

实验内容及要求 1、学习 HTTP 协议的格式和与 TCP 协议的关系 2、了解 HTTP 协议的通信过程; 3、理解 HTTP 协议的无连接、无状态特性。 实验结果《可续页》...

贡献者:银河巨炮999

各种TCP版本

各种TCP版本

各种TCP版本_信息与通信_工程科技_专业资料。[zz]各种 TCP 版本 之 TCP Reno 与 TCP Vegas 共存 实验目的探讨 TCP Vegas 的提出,TCP Vegas 的内涵 ,TCP Vegas...

贡献者:matao409

TCP服务的特点

TCP服务的特点

? TCP 服务的特点传输层协议主要有两个:TCP 协议和 UDP 协议,TCP 协议相对于 UDP 协议的特点是: 面向连接,字节流可靠传输。 使用 TCP 协议通信的双方必须先...

贡献者:helpylee

TCP头结构

TCP头结构

TCP 头结构 TCP 头结构 TCP 头结构 TCP 协议头最少20个字节,包括以下的区域《由于翻译不禁相同,文章中给出相应的英 文单词》 : TCP 源端口《Source Port》:16...

贡献者:liangweichao88

基于WinSock的简单TCP网络编程实验报告

基于WinSock的简单TCP网络编程实验报告

报告人姓名: 学班学号: 级: 期: 实验 成绩 实验项目名称 基于 WinSock 的简单 TCP 网络编程 一、实验目的与要求: 1、学习和掌握 Socket 编程的面向连接编程模...

贡献者:冰女烦恼

TCP抓包分析

TCP抓包分析

TCP 抓包分析一 TCP 格式 源端口:数据发起者的端口号; 目的端口:数据接收方的端口号; 32bit 序列号:标识当前数据段的唯一性; 32bit 的确认号:接收数据方返回...

贡献者:蓝灵飞雪886

TCP协议原理分析

TCP协议原理分析

TCP 报头 TCP 报头总长最小为 20 个字节,其报头结构如下图《图 1》所示; 比特 0 比特 15 源端口《16》 序列号《32》 确认号《32》 TCP 偏移量 《4》 保留 《...

贡献者:caocheng3011

SOAP云计算

2016中国云计算500强《Cloud500》榜单

2016中国云计算500强《Cloud500》榜单

2016 年 7 月 28 日,在第三届中国云计算生态系统峰会现场,商业伙伴咨询机 构正式发布了 2016Cloud500 榜单。这 500 家公司是国内最具实力的云计算公 司的...

贡献者:99112111

云计算 毕业设计

云计算 毕业设计

云计算 毕业设计_互联网_IT/计算机_专业资料。云计算与 openstack 毕 业 设 计 《论 文》 课题名称: 云计算与 openstack 指导教师: 茹兴旺 系专班姓别: ...

贡献者:丶我姓chen

云计算计划书

云计算计划书

云计算计划书 - 如今,高性能计算发展及应用水平已经成为一个城市科研实力乃至一个国家综合实力的重要标志之一。只要在高性能计算领域处于领先地位就等于占领了未来...

贡献者:WXH_666

云计算_图文

云计算_图文

云计算 - 云计算 云计算的三种服务模式:IaaS,PaaS 和 SaaS 云服务”现在已经快成了一个家喻户晓的词了。 如果你不知道 PaaS, IaaS 和 SaaS 的区别,那么也...

贡献者:小小白菜gost

云计算概述_图文

云计算概述_图文

云计算概述_IT/计算机_专业资料。管理科学前沿——云计算 1.云计算概念和分类 1.1 云计算概念云计算的概念仍未得到一致认可。一种说法是:云计算《Cloud Computing...

贡献者:yybaby999

云计算技术综述

云计算技术综述

云计算技术综述摘要:云计算是“以互联网为载体,利用虚拟化等手段整合大规模分布式可配置的计算资源。 使其以服务的方式提供给用户,满足用户按需使用的计算模式” ,...

贡献者:懂小妮

云计算

云计算

云计算_销售/营销_经管营销_专业资料。annealing 0 引言 云计算成为近年来社会各界研究的热 点,它是由网格计算,并行计算,分布式技 术发展而来的一种新型技术, ...

贡献者:专业代写论文33

什么是云计算

什么是云计算

什么是云计算_计算机硬件及网络_IT/计算机_专业资料。什么是云计算?第六组:常昕,吴林鸿,何杰,王璇 一、理解什么是云计算?为什么是电子商务企业首先提出了 云计算...

贡献者:我忘记看柯南

云计算之我见

云计算之我见

云计算之我见 - 云计算之我见 一、云计算对 IT 技术发展的影响 云计算涵盖了计算机系统结构、计算机网络、并行计算、分布式计算和网格计算等各种技术。云计算的需...

贡献者:娃娃smile2011

云计算的发展现状及看法

云计算的发展现状及看法

云计算的发展现状及看法云计算《cloud computing》是基于互联网的相关服务的增加、使用和交付 模式, 通常涉及通过互联网来提供动态易扩展且经常是虚拟化的资源。美国...

贡献者:西云的晴天