C#网络编程
Posted 芜明-追星
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了C#网络编程相关的知识,希望对你有一定的参考价值。
TCP: 面向连接的传输协议
全双工: A---B 可以互相传递数据
点对点: 传输的数据不可能有多个接收方
可靠的数据传输: 发送的数据是ABC,接受到的一定是ABC
TCP 属于:传输层的协议
套接字:
应用程序通过套接字类获取到 输入和输出的数据.
TcpClient:则用于接收和发送流数据
TcpListener:用于接受连接请求
总是服务端使用TcpListener类
网络连天程序的三种模式
1. 点对点,每一台计算机都是服务器
2. A在服务器中知道了B, 就可以直接A -- B 的连接对话
3. A -- 服务器 -- B
漫长的编程操作
IpAddress类
IPAddress ip = IPAddress.Parse("192.168.0.1");
IPEndPoint类(表示ip和端口号)
IPEndPoint iep = new IPEndPoint(ip, 5666);
Dns类
1. 解析制定的域名
GetHostName() 获取本机名
GetHostEntry() 根据主机名,获取到ip对象
Socket类: 封装了 连接,监听,接受的方法.
TcpClient类(客户端)
tcpClient.Connect(connIP, connPort); //连接指定网络端
netWorkStream = tcpClient.GetStream(); //获取流
TcpListener类(服务器)
tcpListener.Start(); //开始监听
client = tcpListener.AcceptTcpClient(); //中断进程
NetWorkStream网络流
//创建一个异步委托
AsyncCallback callback = new AsyncCallback(ReadMessage);
//当buffer读取完毕之后,就调用callback委托中的方法进行处理
netWorkStream.BeginRead(buffer, 0, buffer.Length, callback, null);
UPD编程简介:
是一种"面向数据报"的"无连接协议":,提供的是"不一定可靠"的传输服务
UDP 与 TCP的区别
1. UDP可靠性不如TCP
2. UDP不能保证有序传输
UDP优势
1. UDP速度比TCP快
2. UDP可以一对多传输
3. UDP有消息边界(有格式的)
UdpClient类
几种实例化方式:
1. public UdpClient();
2. public UdpClient(int port); 只需要发送数据报,(匿名发送) .对方无法判断发送方的端口
3. public UdpClient(IPEndPoint localEp); 只接收数据报
4. public UdpClient(string hostname, int port); 接收和发送,使用4,指定接收远程主机IP 和 port. 自动分配本机IP和 port
1. 只需要发送数据报,(匿名发送) .对方无法判断发送方的端口
使用2进行实例化
2. 只接收数据报
使用3
3. 接收和发送
使用4,指定接收远程主机IP 和 port. 自动分配本机IP和 port
发送信息
public int Send(byte[] butter,int length,IPEndPoint ipe);
接收信息
public byte [] Receive(ref IPEndPoint remoteEP)
remoteEP 发送信息来的ip和端口号
//创建IPEndPoint
IPEndPoint remoteIPEndPoint new IPEndPoint(IPAddress.Any,0);
IPAddress.Any 任意ip地址
0 任意端口号
UDP广播和组播:实现一对多的传输方式
子网掩码 是IP 参照物.分网段用的!
比如 192.168.0.1 和192.168.0.2
1.子网掩码为 255.255.255.0
那么192.168.0.X 在同一个网段,能互相访问
2.希望掩码为 255.255.0.0
那么 192.168.X.X在同一个网段,能互相访问
IP地址分为两部分:
网络标志部分
主机标志部分
以上是关于C#网络编程的主要内容,如果未能解决你的问题,请参考以下文章