最后更新:2022-05-04 06:49:57 手机定位技术交流文章
TCP/IP(传送管制议定书/因特网议定书)是传送管制议定书/因特网议定书的缩略语。《传送管制议定书/因特网议定书》是中文译本。又叫网络通讯协议,该协议是互联网最基本协议、互联网和互联网的基础。简单地说,它由网络一级的IP议定书和传输一级的TCP议定书组成。
TCP/IP是连接因特网的计算机所使用的通讯协议。
TCP/IP具体说明设备(不仅仅是计算机)如何与互联网连接,以及它们之间如何交换数据。
IP(互联网协议)是一种互联网协议。IP协议的签名可从其名称中推断出来。在现实生活中,我们一旦将产品包装到一个或一个集装箱内,便将其运输。在网络世界中,信息以类似方式发送。IP协议具体规定了数据传输的基本单位和格式。如果比作货物运输,《知识产权协定》具体规定了集装箱的尺寸以及包装产品的程序。 除了这些以外,IP协议还具体规定了交付数据包的方式和途径。它经常被用作货物运输的比喻。《知识产权协定》具体规定了产品的运输方式和路线。
我们已经认识到知识产权协定的重要性。数据传输的基本方面已在知识产权协定中具体规定。那TCP协议呢?不知大家发现没有,IP协议转让总是单向的。这意味着我们不知道这批货物是否已运到另一边。它相当于支付80美分的单字母。如果我们通过挂号邮件发送基本信件呢?TCP同意给我们寄一封挂号信技术方案协定具体规定了必须遵循的规则和议定书,以便提供可靠的、以目标为导向的数据流动传输服务。简单地说,用TCP模式来说,他们寄给你一个数据包你们都给对方寄了确认包这类审定确保可靠性。
TCP和联合民主党的席位相同。但是,它没有涉及数据包的顺序、错误或重新发布。因此,使用虚拟电路的以连接为导向的服务不使用UDP。联合民主党主要用于搜索和回答服务。例如NFS。它不等同于FTP或Telnet。这些服务只需发送少量数据即可。NTP(网络时间协议)和DNS(也使用TCP)是使用UDP的两个服务。
由于UDP没有建立初始连接(又称握手)(因为两个系统之间没有假电路),对UDP包的欺骗比对TCP包的欺骗更简单,即与UDP有关的服务更加脆弱。
TCP和UDP服务通常是客户/服务器。例如,在该系统上,Telnet服务程序正在失去作用。等待着连接。人们使用Telnet客户应用程序与服务流程连接。客户程序向服务流程发送数据。该信息由服务程序读取和回应。客户方案阅读答复并向用户提供反馈。因而,这个连接是双工的,可以用来进行读写。
如何在两个系统之间建立各种Telnet连接并加以协调?
IP IP 地址 IP 发送套件 IP 地址
二. IP 地址是接收包的目标 IP 地址 。
三,源码系统的连接港口
四,目标系统连接港口
港口是一个软件。客户应用程序或服务流程利用这一工具提供和接收数据。一个端口对应于总共16位元。服务过程经常使用固定港口。例如,SMTP使用25。这些端口号是"众所周知的"所以,在连接到某个主机或服务时,这些地址以及目的地地址是通信所必需的。
是的,对于互联网上的点对点沟通, 我们使用 TCPCliant 和 TCP 听众课程, 两者都是在这里找到的空域。 我不知道你在说什么, Net.Sockets。
Tcp听者课程给出了几种直接的解决办法。在阻断同步模式时,拦截并接受收到的连接请求。要连接到 TcpListener, 请使用 TcpCliet 或 Socket 。您可选择使用 IPEndPoint、 本地IP 地址和端口号, 或仅使用端口号 。做一个Tcp倾听器。
TcpClient 类为连接、传输和接收网络上同步区块模式的流数据提供了直截了当的方法。
一次服务、一次客户通信。
这是001的照片
服务端Code
将引入下列命名空间:
using System.Net;
using System.Net.Sockets;
using System.IO;
using System.Threading;
需要定义的字段:
Thread thr = null;
StreamReader sr;
StreamWriter sw;
单击以下事件按钮时,请注意以下事件按钮 :
private void Con_BUT_Click(object sender, EventArgs e)
{
/ 启动在 TCP/IP 服务器上收听的线索 。
thr = new Thread(new ThreadStart(GetText));
thr.Start();
}
服务客户端一对一
public void GetText()
{
IPAddress IP = IPAddress.Parse(IP_TB.Text);
TcpListener server = new TcpListener(IP, int.Parse(Port_TB.Text));
抱歉, 服务器。 Start (); / / 开始监听
TcpClient client = server.AcceptTcpClient();
NetworkStream stream = client.GetStream();
sr = new StreamReader(stream);
sw = new StreamWriter(stream);
try
{
while (true)
{
“众人欢呼:+Sr.ReadLine();
}
}
catch
{
client.Close();
}
}
将对话日志保存到旧的 tb
void writestring(string s)
{
Old_TB.Text +=DateTime .Now.ToString(“yy/MM/dd hh:mm:ss”)+ s;
Old_TB.Text += " ";
}
[我包括了图像002]
客户端Code
将引入下列命名空间:
using System.Net;
using System.Net.Sockets;
using System.IO;
using System.Threading;
需要定义的字段:
Thread thr = null;
NetworkStream stream;
StreamReader sr;
StreamWriter sw;
响应连接按钮点击事件的方法 :
private void Con_BUT_Click(object sender, EventArgs e)
{
/ 启动连接 TCP/IP 服务的线条 。
thr = new Thread(new ThreadStart(ReadServer));
thr.Start(); }
连接服务端方法:
void ReadServer()
{
TcpClient TC = new TcpClient(IP_TB.Text, int.Parse(Port_TB.Text));
stream = TC.GetStream();
sr = new StreamReader(stream);
try
{
while (true)
{
" 服务声明:+ sr.ReadLine();
}
}
catch
{
TC.Close();
}
}
传输和接收数据的方法:
void writestring(string s)
{
Old_TB.Text += s;
Old_TB.Text += " ";
}
写发送方的方法
private void Send_But_Click(object sender, EventArgs e)
{
sw = new StreamWriter(stream);
string msg = New_TB.Text;
sw.WriteLine(msg);
sw.Flush();
“客户端说 : ” + New_TB.Textt
}
将多客户通信作为一次性服务
服务端UI同上
服务端Code
将引入下列命名空间:
using System.Net;
using System.Net.Sockets;
using System.IO;
using System.Threading;
单击以下事件按钮时,请注意以下事件按钮 :
private void Con_BUT_Click(object sender, EventArgs e)
{
/ 启动在 TCP/IP 服务器上收听的线索 。
thr = new Thread(new ThreadStart(GetText));
thr.Start();
}
public void GetText()
{
IPAddress IP = IPAddress.Parse(IP_TB .Text);
TcpListener server = new TcpListener(IP, int.Parse(Port_TB.Text));
server.Start();
Byte[] bytes = new Byte[256];
String data = null;
while (true)
{
TcpClient client = server.AcceptTcpClient();
NetworkStream NetStr = client.GetStream();
int i = 0;
while ((i = NetStr.Read(bytes, 0, bytes.Length)) != 0)
{
data = System.Text.Encoding.UTF8.GetString(bytes);
(a) 书签(“客户表示:”)+数据;
data = New_TB.Text;
byte[] msg = System.Text.Encoding.UTF8.GetBytes(data);
NetStr.Write(msg, 0, msg.Length);
(a) 书签(“服务说:”)+数据;
}
client.Close();
}
}
将对话日志保存到旧的 tb
void writestring(string s)
{
Old_TB.Text +=DateTime .Now.ToString(“yy/MM/dd hh:mm:ss”)+ s;
Old_TB.Text += " ";
}
[我包括了图像003]
客户端Code
将引入下列命名空间:
using System.Net;
using System.Net.Sockets;
using System.IO;
using System.Threading;
传输和接收数据的方法:
void writestring(string s)
{
Old_TB.Text += s;
Old_TB.Text += " ";
}
写发送方的方法
if (New_TB.Text.Trim().Length > 0)
{
TcpClient TC = new TcpClient(IP_TB.Text, int.Parse(Port_TB.Text));
byte[] data = Encoding.UTF8.GetBytes(New_TB.Text);
NetworkStream NetStr = TC.GetStream();
NetStr.Write(data, 0, data.Length);
“客户端说 : ” + New_TB.Textt
New_TB.Clear();
Byte[] newdate = new Byte[256];
int len = NetStr.Read(newdate, 0, newdate.Length);
“服务声明:+编码.UTF8.GetString(更新日期);
NetStr.Close();
TC.Close();
}
UDP/IP通讯
服务端Code
监控按钮
thr = new Thread(new ThreadStart(UDPMethod));
thr.Start();
void UDPMethod()
{
UdpClient sender = new UdpClient(int.Parse(Port_TB.Text));
IPEndPoint endpoint = null;
while (true)
{
byte[] bytes = sender.Receive(ref endpoint);
writestring(“UDP:” + Encoding.UTF8.GetString(bytes));
}
}
客户端Code
发送按钮
UDPMethod();
void UDPMethod()
{
UdpClient sender = new UdpClient();
IPEndPoint endpoint = new IPEndPoint(IPAddress.Parse(IP_TB.Text), int.Parse(Port_TB.Text));
byte[] bytes = Encoding.UTF8.GetBytes(New_TB.Text);
sender.Send(bytes, bytes.Length, endpoint);
“客户 :”+New_TB.Text;
}
本文由 在线网速测试 整理编辑,转载请注明出处。