C#网络编程基础知识

C#网络编程基础知识一

1.IPAddress类 用于表示一个IP地址。IPAddress默认构造函数

 

public IPAddress(long address);一般不用

 

其中Parse()方法最常用于创建IPAddress实例,语法如下

public static IPAddress Parse(string ipString);

IPAddress类还提供了一些只读字段

Any    0.0.0.0

Broadcast 255.255.255.255

Loopback 127.0.0.1

None 255.255.255.255

 

 

2.Dns

静态类 提供域名解析功能

 

常用方法

GetHostEntry   将主机名或IP地址解析为IPHostEntry实例

GetHostName  获取本地计算机的主机名

Resolve      将DNS主机名或IP地址解析为IPHostEntry实例

 

 1 //参数 www.163.com
 2 
 3 if (args.Length != 1)
 4 
 5             {
 6 
 7                 Console.WriteLine("Parameter error!");
 8 
 9                 return;
10 
11             }
12 
13  
14 
15             //获得主机名
16 
17             IPHostEntry results = Dns.GetHostEntry(args[0]);
18 
19             Console.WriteLine("Host name:" + results.HostName);
20 
21  
22 
23  
24 
25             //使用循环显示别名列表
26 
27             foreach(string alias in results.Aliases)
28 
29             {
30 
31                 Console.WriteLine("Alias:" + alias);
32 
33             }
34 
35  
36 
37             //遍历地址列表
38 
39             foreach(IPAddress address in results.AddressList)
40 
41             {
42 
43                 Console.WriteLine("Address:" + address);
44 
45             }

 

结果:

Host name:1st.xdwscache.ourwebpic.com

Address:218.77.2.32

Address:218.76.105.75

Address:218.75.225.188

请按任意键继续. . .

 

3.IPEndPoint类 将网络端点表示为IP地址和端口号

构造函数

1 public IPEndPoint(long address,int port);
2 
3 public IPEndPoint(IPAddress address,int port);
4 
5  

示例:

 1 IPAddress newAddress = IPAddress.Parse("192.168.10.12");
 2 
 3             //创建IPEndPoint实例
 4 
 5             IPEndPoint ex = new IPEndPoint(newAddress, 8000);
 6 
 7  
 8 
 9             Console.WriteLine("The IPEndPoint is:{0}",ex.ToString());
10 
11             Console.WriteLine("The AddressFamily is:{0}", ex.AddressFamily);
12 
13             Console.WriteLine("The Address is:" + ex.Address + ",and the port is:" + ex.Port);
14 
15             Console.WriteLine("The Max Port Number is:{0}", IPEndPoint.MaxPort);
16 
17             Console.WriteLine("The Min Port Number is:{0}", IPEndPoint.MinPort);
18 
19  
20 
21             //用Port属性单独改变IPEndPoint对象的端口值
22 
23             ex.Port = 80;
24 
25             Console.WriteLine(ex.ToString());
26 
27  

 

4.套接字

多个TCP连接或多个应用程序进程可能需要通过同一个TCP协议商品传输数据。为了区别不同的应用程序进程和连接,许多计算机操作系统为应用程序与TCP/IP协议交互提供了称为套接字的接口,区分不同应用程序进程间的通信和连接

套接字原型

 

1 System.Net.Sockets.Socket
2 
3 public Socket(AddressFamily addressFamily,SocketType socketType,ProtocolType protocolType);

 

 

套接字与协议对应关系

套接字类型

协议对应关系

Dgram(UDP)

无连接通信

Stream(TCP)

面向连接的通信

Raw(ICMP)

ICMP协议

Raw(Raw)

简单IP包

 

//使用套接字传输数据

 

服务器端:

 1 //1.创建一个套接字
 2 //2.将所创建的套接字与本地的IPEndPoint绑定
 3 //3.设置套接字的模式为侦听模式
 4 //4.在套接字上接受接入的连接
 5 
 6 //设置IP地址和端口
 7 IPEndPoint newipep = new IPEndPoint(IPAddress.Any, 8030);
 8 //设置套接字
 9 Socket newSocket = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);
10 //绑定套接字
11 newSocket.Listen(10);
12 Socket client = newSocket.Accept();

客户端:

1 //1.打开套接字
2             //2.连接远程主机
3             //3.发送/接收数据
4             //4.关闭套接字
5 
6             //设置IP地址和端口
7             IPEndPoint newipep = new IPEndPoint(IPAddress.Parse("192.168.1.1"), 8050);
8             //创建Socket对象
9             Socket client = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);

 

转载于:https://www.cnblogs.com/zhaotianff/p/5527284.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值