知道CSDN好人多,特来这里请问一个关于网络的有关问题,望好心人解答

知道CSDN好人多,特来这里请教一个关于网络的问题,望好心人解答!
是这样的,我要帮公司开发一个上位机界面,上下位机之间通过网络实现通信。

于是我采用了C/S模型(TCP)进行编程,但是以我现在所掌握的知识,客户端登陆服务器必须在同一个网段下才能实现,外网无法进行登陆,可是对方要求上位机在外网的时候也可以通过网络监测到下位机的工作情况。

由于刚刚开始学,所以有很多地方不懂,我翻阅了一下论坛,有人说要打洞才行。

所以想向高手请教一下:

1.按照对方的要求普通的C/S模型可否能够满足设计需要。

2.如果可以,怎么实现客户端在外网登陆到服务器上。

3.打洞是否可行,如果需要打洞的话具体的实现原理是什么?(如果内容太多希望好心人能给个链接)。

4.如果以上方法都不行,有什么好的解决办法没有?

在这里真心的希望能有好心人热心解决,祝天下好心人事业有成,平安幸福!

------解决方案--------------------
引用:
谢谢你的解答。

……

如果不能够做端口映射,就需要UDP或者TCP的穿透了,UDP穿透我就不多说了,你可以到网上搜索到很多相关资料。但TCP的穿透方案还不完善,因为TCP是面向连接的,需要建立三次握手。不过还是有解决方案的:
可以通过第三方的服务器伪造TCP连接报文,实现NAT穿透。也就是客户端先同服务端建立连接,然后通过服务器中转三次握手的详细信息。