服务器所用到的知识:TCP/UDP,最基本的;
并发——你可以选择使用select、poll,或者是多线程、多进程:如果你使用多线程,那么就必须使用同步技术——信号量、互斥体、条件变量的一种或几种,并且对于多线程技术,你还需要考虑使用进行线程分离与合并;
如果你使用了多进程,那么同步技术就不是你需要考虑的了,你需要考虑的是进程相关的问题了,你是使用fork还是vfork,你该如何处理客户端的请求,如何处理客户端断开连接后保证能够处理完数据并且没有僵尸进程产生,你还需要考虑高并发的问题;
你发送接受数据的时候,采用何种方式,是阻塞的还是非阻塞的,还有连接超时、重传等问题
你是选择TCP还是UDP,如果选择UDP你可得忙了,需要你自己去进行重传验证,模拟TCP的三次握手,保证数据不会丢失,保证数据的有序性;
还有其他很多需要你考虑的,以上都是指在Linux下的C++,本人对windows C++不了解。
推荐书目:UNIX高级环境编程,UNIX网络编程,卷一。C++只不过是你使用这些技术的方式,不管你使用C还是C++,你都可以使用从这两本书中学习到很多有用的知识,但是不能保证你就可以写出高质量的服务器程序。
首先,需要设置路由器的端口映射,就可以实现楼主的要求,具体需要映射的端口是80和21,80端口是WEB端口,21是FTP端口。这里给楼主详细说下:1、申请花生壳免费域名。因为ADSL每次拨号后,获得的IP都是不同的,所以需要动态绑定到域名上,方便其他人记忆和访问。
2、设置本机固定局域网IP,例如设置为192.168.1.100
3、登陆路由器,找到“虚拟服务器”选项,这里需要说明一下,不同的路由器型号的配置方法也不完全相同,但一般都会有“虚拟服务器”这项功能,如果找不到这一项,可以找到“DMZ主机”,DMZ主机可以将内网的某个IP地址的所有端口均对外网开放,不过这样设置会有安全隐患,建议设置虚拟服务器
4、在“虚拟服务器”表格中填入要映射的内网IP,按上面的就是192.168.1.100,在内网端口和外网端口处填80,再增加一项,填21,然后保存重起路由器
5、启动花生壳并激活域名服务
6、安装IIS和SERVER-U软件,IIS是WEB服务运行环境,用来搭建WEB服务器,SERVER-U是一款非常好用的FTP服务器软件(我自己用了很多年),有中文版,设置起来非常简单,如果不会我帮你远程,设置好后就可以正常访问了。需要注意,通过路由器配置的服务器,在内网电脑一般是不能通过域名访问的,假设在你自己的电脑上访问你申请的域名,就会出现让你输入用户名和密码的提示,你怎么输入都是不对的。要外网的电脑才可以正确访问,这点希望楼主明白。
二、直接ADSL拨号上网的配置方法:
1、申请花生壳免费域名
2、在计算机上启动花生壳并激活域名服务
3、安装IIS和SERVER-U软件,设置好后即可成功访问
差不多就这样了,
服务器所用到的知识:TCP/UDP,最基本的
并发——你可以选择使用select、poll,或者是多线程、多进程
如果你使用多线程,那么就必须使用同步技术——信号量、互斥体、条件变量的一种或几种,并且对于多线程技术,你还需要考虑使用进行线程分离与合并,
如果你使用了多进程,那么同步技术就不是你需要考虑的了,你需要考虑的是进程相关的问题了,你是使用fork还是vfork,你该如何处理客户端的请求,如何处理客户端断开连接后保证能够处理完数据并且没有僵尸进程产生,你还需要考虑高并发的问题
你发送接受数据的时候,采用何种方式,是阻塞的还是非阻塞的,还有连接超时、重传等问题
你是选择TCP还是UDP,如果选择UDP你可得忙了,需要你自己去进行重传验证,模拟TCP的三次握手,保证数据不会丢失,保证数据的有序性
还有其他很多需要你考虑的,以上都是指在Linux下的C++,本人对windows C++不了解
推荐书目:UNIX高级环境编程,UNIX网络编程,卷一。C++只不过是你使用这些技术的方式,不管你使用C还是C++,你都可以使用从这两本书中学习到很多有用的知识,但是不能保证你就可以写出高质量的服务器程序。
欢迎分享,转载请注明来源:夏雨云
评论列表(0条)