跨平台C++服务器程序开发 (2)服务器端口

服务器&客户端

现实中有许多软件是分为客户端和服务器两部分,常见的比如Mysql,分为Mysql Client和Mysql Server,Client负责输入命令和结果显示,Server负责存储数据和返回查询结果。

再比如网络游戏,玩一款游戏需要先下载客户端,启动launcher登录器后,需要选择服务器,比如电信1区,然后连接服务器进入游戏。

可以说,任何需要联网的软件都需要服务器程序。客户端和服务器进行交互的方式就是网络,因此对于服务器程序来说,网络消息处理是最基础、最关键的功能。

客户端程序只由一人操作,而服务器程序需要同时服务大量用户。同样是程序崩溃,一个客户端崩溃只会影响一个用户,而一个服务器程序崩溃则影响所有用户,因此服务器程序要求高稳定性、高效率。

Created with Raphaël 2.1.0 客户端 网络 服务器

IP地址&端口

在互联网时代,任何接入网络的两台设备间都可以通信。通信需要知道对方的联系地址,比如打电话我们需要知道对方的手机号,网络通信则需要知道对方设备的ip地址,ip地址就相当于网络世界的身份证。

但是一个设备上有很多联网程序同时运行,如何保证只会被指定的某个程序收到,这就需要端口号。如果说ip地址能指定一台设备,那么端口号可以指定某个程序,而连接服务器就需要服务器程序的ip和端口。

查看开放端口

一台设备可使用端口范围为1~65535(2字节大小),客户端只能连接已开放端口。 若要查看哪些端口已经开放,可使用netstat命令。

测试环境:
1. 在VMWare虚拟机里启动Centos7 Linux系统
2. 在Windows系统里使用SecureCRT软件远程连接Centos7系统
(Centos7所在的虚拟机ip地址为192.168.1.104, Windows系统的ip地址为192.168.1.102,VMWare、Centos7、SecureCRT软件请自行下载安装)

SecureCRT远程操作Linux界面:
这里写图片描述

执行命令: netstat -ant

这里写图片描述
命令结果字段解释

字段解释
Prototcp协议类型,如tcp表示IPV4,tcp6表示IPV6
Local Address本机地址,如0.0.0.0:22中,0.0.0.0表示本机通配地址,22表示端口22
Foreign Address对方地址,如第二行的192.168.1.102:1965,其中192.168.1.102表示对方的ip地址,102表示对方程序的端口号
State套接字状态,如LISTEN表示监听状态,ESTABLISHED表示就绪状态

综合解释:
第一行表示Centos的22号端口处于Listen监听状态,任意外部ip地址和端口都可连接该端口。

第二行表示SecureCRT通过网络连接Centos的22号端口,其中SecureCRT使用的ip和端口分为192.168.1.102和1965,Centos内部的远程服务程序ssh使用的ip和端口分别为192.168.1.104和22。

Created with Raphaël 2.1.0 SecureCRT(192.168.1.102:1965) Centos-ssh(192.168.1.104:22)

由此可见,Centos开放了22号端口,并处于监听状态,因此SecureCRT软件可通过网络连接Centos服务器的22号端口,建立Socket连接,实现网络通信,达到远程操控的作用。

本文介绍了服务器程序的基本概念,ip和端口的作用,以及查看已开放端口,希望对大家有所帮助。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值