放在外网的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通信过程,简单为,三次建立,四次断开。具体如下:

三次建立:

主机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。

接收到这个最终FIN的原发送端TCP(主动要求关闭连接的那一端)确认这个FIN。

因为每个方向都需要一个FIN和ACK,所以断开需要4个次连接。

4.C# TCP/IP中的客户端和服务器在局域网或外网怎么通信呀

这是我以前在学校的时候做的一个c/s系统里面的类似qq聊天工具 你看看。

这是客服端的代码:using System;using System.Collections.Generic;using System.ComponentModel;using System.Data;using System.Drawing;using System.Linq;using System.Text;using System.Windows.Forms;using System.Threading;using System.Net;using System.Net.Sockets;namespace demo2{ public partial class frmTouchWe : Form { Thread a; //发送IP跟端口 private UdpClient udp = new UdpClient("127.0.0.1",9000); //接收端口 private UdpClient udpSend = new UdpClient(8000); private IPEndPoint ip = new IPEndPoint(IPAddress.Any,0); public frmTouchWe() { InitializeComponent(); Form. = false; } private void frmTouchWe_Load(object sender, EventArgs e) { //定义线程开始 a = new Thread(new ThreadStart(Run)); a.Start(); }private void linkLabel1_LinkClicked(object sender, e) { //客服接收信息。

弹出窗体 frmAnswerInfo answerInfo = new frmAnswerInfo(); answerInfo.Show(); } private void button1_Click(object sender, EventArgs e) { //在自己的信息栏中显示自己的信息 lsbInfo.Items.Add(txtInfo.Text); //用户信息内容 string Mes = txtInfo.Text; //用户信息 string mes = "用户:"+Program.user.id+"("+Program.user.name+")"+" " + time; //转换成字节 byte[] b = UTF8Encoding.UTF8.GetBytes(Mes); byte[] bb = UTF32Encoding.UTF8.GetBytes(mes); //发送信息 udp.Send(bb, bb.Length); udp.Send(b, b.Length); txtInfo.Text = ""; } //循环接受客服发来的信息 private void Run() { while (true) { byte[] b = udpSend.Receive(ref ip); string mes = UTF8Encoding.UTF8.GetString(b); lsbInfo.Items.Add(mes); } } private void button2_Click(object sender, EventArgs e) { this.Close(); } private void button3_Click_1(object sender, EventArgs e) { //清空所有项 lsbInfo.Items.Clear(); } }}下面是服务器端的代码using System;using System.Collections.Generic;using System.ComponentModel;using System.Data;using System.Drawing;using System.Linq;using System.Text;using System.Windows.Forms;using System.Threading;using System.Net;using System.Net.Sockets;namespace demo2{ public partial class frmAnswerInfo : Form { //定义一条线程,用来循环接收客户发来的信息 Thread a; //定义另一条线程,用来升起窗体 Thread b; //发送到信息的地址 private UdpClient udpSend = new UdpClient("127.0.0.1",8000); //接收端口 private UdpClient udp = new UdpClient(9000); private IPEndPoint ip = new IPEndPoint(IPAddress.Any,0); public frmAnswerInfo() { InitializeComponent(); Form. = false; } //循环接收信息 private void Run() { while (true) { byte[] b = udp.Receive(ref ip); string mes = UTF8Encoding.UTF8.GetString(b); lsbInfo.Items.Add(mes); } } private void frmAnswerInfo_Load(object sender, EventArgs e) { //设置窗体的位置属性(窗体加载时候慢慢从右下角升上来~类似qq广告~~) this.Top = Screen.PrimaryScreen.WorkingArea.Height; this.Left = Screen.PrimaryScreen.WorkingArea.Width - this.Width; //设置窗体的名字 a = new Thread(new ThreadStart(Run)); b = new Thread(new ThreadStart(run)); //开始线程 a.Start(); b.Start(); } //用户点击谈话时显示该窗体 private void run() { while (true) { this.Top = this.Top - 10; Thread.Sleep(100); if (Screen.PrimaryScreen.WorkingArea.Height - this.Height >= this.Top) { break; } } } //发送按钮编码 private void button1_Click(object sender, EventArgs e) { //获取当前时间 DateTime time = DateTime.Now; //在自己的信息栏中显示自己发出去的信息 lsbInfo.Items.Add("在线客服:"+time); lsbInfo.Items.Add(txtInfo.Text); //在客户端显示自己的信息标题 string mes = "在线客服:"+time; //信息内容 string Mes = txtInfo.Text; //发送信息标题 byte[] b = UTF8Encoding.UTF8.GetBytes(mes); //发送信息内容 byte[] bb = UTF8Encoding.UTF8.GetBytes(Mes); udpSend.Send(b, b.Length); udpSend.Send(bb,bb.Length); txtInfo.Text = ""; } private void button2_Click(object sender, EventArgs e) { this.Close(); } private void button3_Click(object sender, EventArgs e) { //清除所有项 lsbInfo.Items.Clear(); } }}这个可以跑的。

我以前就用过的。

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

转载请注明出处育才学习网 » 放在外网的tcp服务端怎么写

知识

socket请求怎么写

阅读(215)

本文主要为您介绍socket请求怎么写,内容包括socket能接收所有客户端的请求怎么写(socket.Accept()的问题),socket怎么样实现,如何用socket向HTTP服务器发送请求获取内容。//启动一个线程监听System.Threading.Thread thread = new Thread(new

知识

0.67%英语怎么写

阅读(282)

本文主要为您介绍0.67%英语怎么写,内容包括0.67的英文怎么写不会啊没学过呀,45.5%用英语怎么表示,98.5%用英语该怎么写。百分比的英文:percentage,百分比的表示:数字+percent。如12%就是:12 percent。重点词汇:percentag

知识

1日到三十一英文怎么写

阅读(240)

本文主要为您介绍1日到三十一英文怎么写,内容包括1到31的英语单词怎么写,英语日期1日到31日的写法,一号到三十一号用英语怎么说。1 one 2 two 3 three 4 four 5 five 6 six 7 seven 8 eight 9 nine 10 te

知识

声音的音的笔顺怎么写

阅读(301)

本文主要为您介绍声音的音的笔顺怎么写,内容包括声音的声笔顺怎么写,音字的笔顺怎么写,声的笔画顺序怎么写的。声的笔画顺序写法为:

知识

山河同在拼音怎么写

阅读(303)

本文主要为您介绍山河同在拼音怎么写,内容包括拼音:山河同在,山河同在,全键盘怎么拼,山川共存的拼音。字面意思是与山川河流一同存在,与日月的光芒相交辉映。实际原文的意思是老人用自己的勤劳、善良创造了这片绿洲。有限的森林创造了无限的

知识

企业备案申请书怎么写

阅读(291)

本文主要为您介绍企业备案申请书怎么写,内容包括小型微利企业备案申请书怎么写,新公司备案申请怎么写,企业备案登记申请书需要的单位介绍信怎么样的格式。申请报告***国家税务局:我公司*****公司,税号***,成立 于*年*月*日,法人代表**,地址:***,属

知识

绩效考核报告怎么写

阅读(256)

本文主要为您介绍绩效考核报告怎么写,内容包括个人绩效总结怎么写,绩效考核报告怎么写,绩效考核工作总结怎样写。工厂个人总结范文 绩效考核 个人绩效总结怎么写 光阴似箭,日月如梭,不知不觉一年又将过往。一年里,在单位领导的精心培育和教导

知识

工作中的得总结怎么写

阅读(242)

本文主要为您介绍工作中的得总结怎么写,内容包括个人工作总结100字,工作个人反思怎么写,工作总结要怎么写啊。最低0.27元开通文库会员,查看完整内容>原发布者:勤劳的人XX简短个人工作总结 加强业务知识学习和克服自身的缺点,今后要认真总结经

知识

化妆品业绩怎么写

阅读(232)

本文主要为您介绍化妆品业绩怎么写,内容包括化妆品员工总结怎么写,化妆品业绩没完成总结怎么简写,化妆品业绩没完成总结怎么简写。时间一晃而过,转眼间到公司快三个月了。这是我人生中弥足珍贵的一段经历。在这段时间里各级领导在工作上给予

知识

护照提前怎么写申请书

阅读(253)

本文主要为您介绍护照提前怎么写申请书,内容包括护照申请书怎么写,护照申请怎么写,护照申请表怎么写。申请书是个人或集体向组织、机关、企事业单位或社会团体表述愿望、提出请求时使用的一种文书。申请书要求一事一议,内容要单纯。不同的对

知识

万能驱动助理怎么用

阅读(240)

本文主要为您介绍万能驱动助理怎么用,内容包括怎么使用万能驱动助理,万能驱动助理怎么用,有没有具体的步骤装驱动,万能驱动助理怎么使用啊我的网络适配器卸载了,所以下了这个,但。方法/步骤1装好操作系统找驱动,也可以使用这款软件。一定要

知识

凌薇的英文怎么写

阅读(219)

本文主要为您介绍凌薇的英文怎么写,内容包括凌薇翻译成英文怎么念,凌薇翻译英文名咋读,凌薇翻译英文名咋读。冷的英语:cold,读音:[kəʊld]。cold英 [kəʊld] 美 [koʊld] adj. 冷的;寒冷的;冷酷的;冷淡的;冷静的

知识

lucis拉丁文怎么写

阅读(312)

本文主要为您介绍lucis拉丁文怎么写,内容包括拉丁文翻译,拉丁文翻译,拉丁文怎么写。Metatronus就是这个意思.梅塔佐是天使之王,负责记录人间历史,希伯来的卡巴拉传统中是上帝最信赖的天使,据说他是天堂中唯一被允许坐

知识

房屋问题的诉求书怎么写

阅读(251)

本文主要为您介绍房屋问题的诉求书怎么写,内容包括上访诉求书怎么写,房屋拆迁补偿诉求书怎样写,如何写诉求书。开头:顶格写上收信机关的名称,应了解掌握收信机关的行政职能,应当向依法有权处理的本级或上一级行政机关提出。信访人即使向最高层

知识

在外边体检承诺书怎么写

阅读(249)

本文主要为您介绍在外边体检承诺书怎么写,内容包括体检承诺书怎么写,体检承诺书怎么写,健康承诺书怎么写。首先把标题写清楚。根据承诺的情况,要通过标题能大体体现出来。比如写个人从业资格和工作等的承诺书,标题可以写“个人从业资格承诺书

知识

在外面跑单感想怎么写家具

阅读(205)

本文主要为您介绍在外面跑单感想怎么写家具,内容包括家具逼单环节心得怎样写,家具大单分享总结怎么写,家具活动后的要感受怎么写。逼单是整个销售业务过程中最重要的一个环节。如果逼单失败你的整个业务就会失败,其实整个业务过程就是一个“

知识

c网络验证服务端怎么写

阅读(214)

本文主要为您介绍c网络验证服务端怎么写,内容包括谁能用C语言写个最简单socket通信服务端和客户端示例,用C++写服务器怎么写,怎样用C编写语言,修改服务里面的设置,以及“本地连接”里面的身。网络的Socket数据传输是一种特殊的I/O,Socket也

知识

在外面的英文怎么写的

阅读(276)

本文主要为您介绍在外面的英文怎么写的,内容包括在外面英语怎么说,在外面用英语怎么写,在外面的那个地方的英文怎么写。在外面的英文是outside,音标是英 [ˌaʊtˈsaɪd] 美 [aʊtˈsaɪd, ˈaʊtˌsaɪd] 。 outside ad

知识

安卓服务端怎么写

阅读(223)

本文主要为您介绍安卓服务端怎么写,内容包括一个APP服务端,该怎么写,安卓软件的服务端(服务器)用什么语言写服务器的程序,用java写的安卓服务端怎么在服务器空间里运行。Android应用的服务器端是可以用C#写的: C#是微软公司发布的一种面向对象

知识

在外务工怎么写

阅读(196)

本文主要为您介绍在外务工怎么写,内容包括出门在外打工证明该怎么写,外出务工证明怎么写,家长在外边打工,如何填写其工作单位。我花20元刚办的身份证要两个月后可以领,于是我另外花了10元办了一个临时身份证,有效期是三个月。 外出务工的话,证

知识

在外面单词怎么写

阅读(207)

本文主要为您介绍在外面单词怎么写,内容包括在外面英语怎么说,在外面这个单词怎么写,外面英语单词怎么写。在外面的英文是outside,音标是英 [ˌaʊtˈsaɪd] 美 [aʊtˈsaɪd, ˈaʊtˌsaɪd] 。 outside ad

知识

怎么写安卓服务端

阅读(173)

本文主要为您介绍怎么写安卓服务端,内容包括一个APP服务端,该怎么写,用java写的安卓服务端怎么在服务器空间里运行,如何写一个android服务。tomcat为服务器端的话,在手机上测试应该会比较麻烦,毕竟手机不容易访问本机的tomcat程序,模拟器倒是

[/e:loop]