自己如何搭建服务器。

自己如何搭建服务器。,第1张

1、打开控制面板,选择并进入“程序”,双击“打开或关闭Windows服务”,在弹出的窗口中选择“Internet信息服务”下面所有地选项,点击确定后,开始更新服务。

2、更新完成后,打开浏览器,输入“http://localhost/”回车,如果此时出现IIS7欢迎界面,说明Web服务器已经搭建成功。

3、当web服务器搭建成功后,我们下一步所要做的就是把我们开发的网站安装到Web服务器的目录中。一般情况下,当Web服务器安装完成后,会创建路径“%系统根目录%inetpub/wwwroot”,将我们开发的网站COPY到该路径下。即可实现本地访问该网站。

4、设置防火墙,让局域网当其它计算机也能访问本地网站资源。具体方法:打开控制面板,选择“系统和安全”,点击“允许程序通过Windows防火墙”,在弹出的对话框中勾选“万维网服务HTTP”右侧的两个复选框,最后点击确定退出。

5、在局域网中其它计算机上,打开浏览器,输入 “http://Web服务器的IP地址/”按回车键,就可以访问服务器上的资源”。  经过以上步骤的设置,局域网中的其它用户就可以通过浏览器访问你所共享的web资源了!

扩展资料:

入门级服务器所连的终端比较有限(通常为20台左右),况且在稳定性、可扩展性以及容错冗余性能较差,仅适用于没有大型数据库数据交换、日常工作网络流量不大,无需长期不间断开机的小型企业。

不过要说明的一点就是目前有的比较大型的服务器开发、生产厂商在后面我们要讲的企业级服务器中也划分出几个档次,其中最低档的一个企业级服务器档次就是称之为"入门级企业级服务器",这里所讲的入门级并不是与我们上面所讲的"入门级"具有相同的含义,不过这种划分的还是比较少。

还有一点就是,这种服务器一般采用Intel的专用服务器CPU芯片,是基于Intel架构(俗称"IA结构")的,当然这并不是一种硬性的标准规定,而是由于服务器的应用层次需要和价位的限制。

以下是windows环境下搭建iis服务器

1、准备工具:iis、Donet2.0或更高版本、mssql 2000或者更高版本或者office套装的access数据库(根据实际情况)

2、安装步骤:

1)、安装配置IIS,我这里不能插入图片,详细配置可以参考网上很多文档。

2)、设置好操作系统的安全配置,这个有很多内容,可以网上搜索

3)、安装数据库

4)、安装你所要搭建的平台

1.简单服务器

//#include <winsock2.h>

//#pragma comment(lib,"WS2_32.lib")

WSADATA wsd

static UINT port=%%1

UINT Listen(LPVOID pParam)

{

SOCKET sServer,sClient

char buf[1024]

int retVal

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

{

return -1//失败

}

sServer=socket(AF_INET,SOCK_STREAM,IPPROTO_TCP)

if(INVALID_SOCKET==sServer)

{

WSACleanup()

return -1//创建套接字失败

}

SOCKADDR_IN addrServ

addrServ.sin_family=AF_INET

addrServ.sin_port=htons((short)pParam)

addrServ.sin_addr.s_addr=INADDR_ANY

retVal=bind(sServer,(LPSOCKADDR)&addrServ,sizeof(SOCKADDR_IN))

if(SOCKET_ERROR==retVal)

{

closesocket(sServer)

WSACleanup()

return -1//绑定套接字失败

}

retVal=listen(sServer,1)

if(SOCKET_ERROR==retVal)

{

closesocket(sServer)

WSACleanup()

return -1//开始监听失败

}

sockaddr_in addrClient

int addrClientlen=sizeof(addrClient)

sClient=accept(sServer,(sockaddr FAR*)&addrClient,&addrClientlen)

if(INVALID_SOCKET==sClient)

{

closesocket(sServer)

WSACleanup()

return -1//开始接受客户端连接失败

}

ZeroMemory(buf,sizeof(buf))

retVal=recv(sClient,buf,sizeof(buf),0)

if(SOCKET_ERROR==retVal)

{

closesocket(sServer)

closesocket(sClient)

WSACleanup()

return -1//接收数据失败

}

CString %%2(buf)

closesocket(sServer)

closesocket(sClient)

WSACleanup()

return 0

}

CWinThread *pThread=AfxBeginThread(Listen,&port)

2.简单客户端

//#include <winsock2.h>

//#pragma comment(lib,"WS2_32.lib")

WSADATA wsd

SOCKET sHost

SOCKADDR_IN servAddr

char buf[1024]

int retVal

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

{

return -1//失败

}

sHost=socket(AF_INET,SOCK_STREAM,IPPROTO_TCP)

if(INVALID_SOCKET==sHost)

{

WSACleanup()

return -1//创建套接字失败

}

servAddr.sin_family=AF_INET

servAddr.sin_addr.s_addr=inet_addr(%%3)

servAddr.sin_port=htons((short)%%2)

int nServAddlen=sizeof(servAddr)

retVal=connect(sHost,(LPSOCKADDR)&servAddr,sizeof(servAddr))

if(SOCKET_ERROR==retVal) {

closesocket(sHost)

WSACleanup()

return -1//连接服务器失败

}

ZeroMemory(buf,sizeof(buf))

strcpy(buf,%%3)

retVal=send(sHost,buf,sizeof(buf),0)

if(SOCKET_ERROR==retVal)

{

closesocket(sHost)

WSACleanup()

return -1//向服务器发送数据失败

}

closesocket(sHost)

WSACleanup()

3.获得本机IP

//#include <winsock2.h>

//#pragma comment(lib,"WS2_32.lib")

WSADATA wsd

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

{

return -1//失败

}

char szHostname[100],szHostaddress[200]

if(gethostname(szHostname,sizeof(szHostname))!=SOCKET_ERROR)

{

HOSTENT *pHostEnt=gethostbyname(szHostname)

if(pHostEnt!=NULL){

sprintf(szHostaddress,"%d.%d.%d.%d",

( pHostEnt->h_addr_list[0][0]&0x00ff ),

( pHostEnt->h_addr_list[0][1]&0x00ff ),

( pHostEnt->h_addr_list[0][2]&0x00ff ),

( pHostEnt->h_addr_list[0][3]&0x00ff ))

}

}

else

return

CString %%1(szHostaddress)

4.端对端通信

//#include <winsock2.h>

//#pragma comment(lib,"WS2_32.lib")

WSADATA wsd

SOCKET s

char buf[1024]

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

{

return -1//失败

}

s=socket(AF_INET,SOCK_DGRAM,0)

if(s==INVALID_SOCKET)

{

WSACleanup()

return -1//创建套接字失败

}

SOCKADDR_IN servAddr

servAddr.sin_family=AF_INET

servAddr.sin_addr.s_addr=inet_addr(%%1)

servAddr.sin_port=htons(INADDR_ANY)

if(bind(s,(SOCKADDR*)&servAddr,sizeof(SOCKADDR_IN))==SOCKET_ERROR)

{

closesocket(s)

WSACleanup()

return -1//绑定套接字失败

}

int nServAddrlen=sizeof(servAddr)

ZeroMemory(buf,sizeof(buf))

if(recvfrom(s,buf,sizeof(buf),0,(SOCKADDR*)&servAddr,&nServAddrlen)==SOCKET_ERROR)

{

closesocket(s)

WSACleanup()

return -1//接收数据失败

}

CString %%2(buf)

ZeroMemory(buf,sizeof(buf))

strcpy(buf,%%3)

SOCKADDR_IN clientAddr

clientAddr.sin_family=AF_INET

clientAddr.sin_addr.s_addr=inet_addr(%%4)

clientAddr.sin_port=htons((short)%%5)

int nClientlen=sizeof(clientAddr)

if(sendto(s,buf,sizeof(buf),0,(SOCKADDR*)&clientAddr,nClientlen)==SOCKET_ERROR)

{

closesocket(s)

WSACleanup()

return -1//向服务器发送数据失败

}

closesocket(s)

WSACleanup()

5.点对点通信

//#include <winsock2.h>

//#pragma comment(lib,"WS2_32.lib")

WSADATA wsd

SOCKADDR_IN addrServ,addrServ2

SOCKET sServer,sClient,sHost

int retVal

sockaddr_in addrClient

char buf[1024]

static UINT port=%%2

BOOL listenerRun=TRUE

UINT Listen(LPVOID pParam)

{

addrServ.sin_family=AF_INET

addrServ.sin_port=htons((UINT)pParam)

addrServ.sin_addr.s_addr=INADDR_ANY

retVal=bind(sServer,(LPSOCKADDR)&addrServ,sizeof(SOCKADDR_IN))

if(SOCKET_ERROR==retVal)

{

closesocket(sServer)

WSACleanup()

return -1//绑定套接字失败

}

retVal=listen(sServer,1)

if(SOCKET_ERROR==retVal)

{

closesocket(sServer)

WSACleanup()

return -1//开始监听失败

}

int addrClientlen=sizeof(addrClient)

sClient=accept(sServer,(sockaddr FAR*)&addrClient,&addClientlen)

if(INVALID_SOCKET==sClient)

{

closesocket(sServer)

WSACleanup()

return -1//接收客户端请求失败

}

while(listenerRun)

{

ZeroMemory(buf,sizeof(buf))

retVal=recv(sClient,buf,sizeof(buf))

if(SOCKET_ERROR==retVal)

{

closesocket(sServer)

closesocket(sClient)

WSACleanup()

return -1//接收客户端数据失败

}

CString %%4(buf)

}

}

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

{

return -1//失败

}

sServer=socket(AF_INET,SOCK_STREAM,IPPROTO_TCP)

if(INVALID_SOCKET==sServer)

{

WSACleanup()

return -1//创建套接字失败

}

CWinThread *pThread=AfxBeginThread(Listen,&port)

sHost=socket(AF_INET,SOCK_STREAM,IPPROTO_TCP)

if(INVALID_SOCKET==sHost)

{

WSACleanup()

return -1//创建套接字失败

}

servAddr2.sin_family=AF_INET

servAddr2.sin_addr.s_addr=inet_addr(%%1)

servAddr.sin_port=htons((short)%%3)

int nServerAddrlen=sizeof(servAddr2)

retVal=connect(sHost,(LPSOCKADDR)&servAddr2,sizeof(servAddr2))

if(SOCKET_ERROR==retVal)

{

closesocket(sHost)

WSACleanup()

return -1//连接失败

}

zeroMemory(buf,sizeof(buf))

strcpy(buf,%%5)

retVal=send(sHost,buf,sizeof(buf),0)

if(SOCKET_ERROR==retVal)

{

closesocket(sHost)

WSACleanup()

return -1//向发送数据失败

}

listenerRun=FALSE

DWORD dwExitCode

::GetExitCodeThread(pThread->m_hThread,&dwExitCode)

pThread=null

closesocket(sServer)

closesocket(sClient)

closesocket(sHost)

WSACleanup()


欢迎分享,转载请注明来源:夏雨云

原文地址:https://www.xiayuyun.com/zonghe/492305.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-06-14
下一篇2023-06-14

发表评论

登录后才能评论

评论列表(0条)

    保存