放在外网的tcp服务端怎么写

1.怎么用TCP协议通过外网连接服务器首先你要明白路由是不是共享式NAT上网的,也就是说router port nat出去的数据是一直堆叠或者持续变动的,而不做端口映射基本没有实现的可能!
当然如果是静态NAT,那么直接做静态NAT就可以了!
如灰鸽子,是直接通过本地服务端(中灰鸽子端)连接广域网客户端(控制端),然后服务端和建立的联系 。如通过80端口出数据,穿透防火墙等等 。
你可以尝试修改数据包出去的port,同时在两个端进行修改!
-------------
抓取到数据包的时候注意地址段,关键在于让路由到router nat到数据包的时候,能找到你的主机A或者W 。
你可以参照一些三层更新之类的软件 。
有通过路由器,那就在路由器中设置端口映射,要求是电脑在路由器中获取一个固定的内网IP 。由于家用宽带一般禁用了80和21这些常用端口,所以需要的是通过外网访问时,端口就不能是被禁用的端口,另外,家用宽带都是48小时更换一次IP,所以你就需要DDNS,比如花生壳动态域名 。
已经设置的动态域名,如:dongtai.ddns.net
设置端口映射,需要通过远程链接访问家里的计算机(10.0.1.201),则在路由器中设置端口映射为远程访问端口(如:3390),目标计算机IP(10.0.1.201),目标计算机端口(3389,3389是远程桌面的端口) 。最后你通过其他计算机远程桌面家里的电脑的时候,就只需要在远程桌面窗口输入:dongtai.ddns.net:3390就可以了
最重要的是你要有一个公网IP 。
可能逻辑上有点混乱,对于映射,不同的路由器设置方式都是大致相同的,具体的那就自己查查自己的路由器怎么设置咯 。
2.Socket编程如何搭建一个外网可以访问的服务器搭建外网访问,首先你要有一台外网可访问的服务器,有以下几种方法可以实现 。
一、购买外网服务器 。由于服务器端使用JAVA语言开发,所以外网服务器操作系统可以是Linux或Windows,这个需要你花钱购买 。如果只是测试,你可以选择购买阿里云的云服务器,非常便宜 。
二、还有一种方法就是你通过花生壳之类的软件进行映射你的网络,但花生壳对长城宽带之类的网络支持不是特别好,如果需要很好的支持,那也需要花钱购买 。
三、如果你是通过路由器上网,并且可以操作路由器权限且使用的是电信或者是联通的网络,那可以直接在路由器里面做端口映射,这个你可以百度一下,有很多文章讲的非常清楚,这里篇幅限制,就不贴了 。
四、如果你是直接通过猫上网且使用电信或联通宽带,那可以直接使用本机外网IP访问你的程序 。
以上四种方法中,最稳定的还是购买外网服务器,其它都会有各种问题,你可以选择其中适合你的一种方法 。希望能帮助到你
3.外网TCP/IP通迅测试,怎么建立连接.TCP/IP通信过程,简单为,三次建立,四次断开 。具体如下:
【放在外网的tcp服务端怎么写】三次建立:
主机A发送SYN(seq=x)报文给主机B,主机A进入SYN_SEND状态 ;
主机B收到SYN报文,回应一个SYN(seq=y)ACK(ACK=x+1)报文,主机B进入SYN_RECV状态;
主机A收到主机B的SYN报文,回应一个ACK(ACK=y+1)报文,主机A进入established状态 。
三次握手完成,主机A和主机B已经建立连接 。
四次断开:
某个应用进程先调用close,称该端执行“主动关闭”(active close) 。该端的TCP发送一个FIN分节,表示数据发送完毕;
接收到这个FIN的对端执行“被动关闭”(passive close),这个FIN由TCP确认 。
一段时间的等待后,接收到这个文件结束符的应用进程将调用close关闭它的套接字,所以它的TCP也发送一个FIN 。