Socket网络编程学习笔记(1):常用方法介绍

虽然天天上博客园欣赏各位“大侠”的杰作,偶然回首,突然发 现自己已成“潜水者”久矣。本来对于自己有限的水平,有点不好意 思在此发贴,不过潜伏久了,才慢慢意识到老是通过浏览他人的文章虽然能够提 高自己能力,能够及时的获取新技术新思想,但却只能停留在他人的思想上。通 过学习,加上自己的想法,再写出来,让大家来指证错误,不仅能够巩固自己的 知识,也可以让一些跟我一样迷惘的朋友们不用再去走一些弯路,岂不是两全其 美,本着这样的想法,打算把自己平时的所学所想都写下来,欢迎各路朋友批评 指证,因为你的批评和建议能够让我更迅速的得到提高。

好了,讲了这么多废话,也该言归正传了。由于工作上需要,最近恶补了一 下socket网络编程,整理了一下资料,把它放上来,希望能够对一些朋友有帮助 。

在讲Socket编程前,我们先来看一下几个最常用的类和方法,相信这些东西 能让你事半功倍。

一、IP地址操作类

1、IPAddress类

a、在该类中有一个Parse()方法,可以把点分的十进制IP表示转化成 IPAddress类,方法如下:

IPAddress address = IPAddress.Parse(“192.168.0.1”);

b、IPAddress提供4个只读字段

Any  用于代表本地系统可用的任何IP地址

Broadcase 用于代表本地网络的IP广播地址

Loopback 用于代表系统的回送地址  

None 用于代表系统上没有网络接口

其中IPAddress.Any最常用可以用来表示本机上所有的IP地址,这对于socket 服务进行侦听时,最方便使用,不用对每个IP进行侦听了。而 IPAddress.Broadcase可用来UDP的IP广播,这些具体讲socket时再详细介绍。

2、IPEndPoint类      

我们可以通过二种构造方法来创建IPEndPoint类:

a、IPEndPoint(long address, int port)

b、IPEndPoint(IPAddress address, int port)

四个属性:

Address

AddressFamily

Port

MaxPort

MinPort

这些应该从名字上就很好理解,不再一一介绍。IPEndPoint其实就是一个IP 地址和端口的绑定,可以代表一个服务,用来Socket通讯。

时间: 2024-08-29 04:30:21

Socket网络编程学习笔记(1):常用方法介绍的相关文章

Socket网络编程学习笔记(3):利用套接字助手类

在上一篇中已经介绍了利用Socket建立服务端和客户端进行通信,如果需要 的朋友可访问<Socket网络编程学习笔记(2):面向连接的Socket>.在本篇 中,将利用C#套接字的助手类来简化Socket编程,使得刚刚接触到网络编程的 朋友们更容易上手. 跟上篇一样,通过C#套接字的助手类来编程同样分 服务端和客户端. 一.服务端侦听模式 1.创建套接字与 IPEndPoint绑定,并设置为侦听模式. 1//创建IPEndPoint实例 2 IPEndPoint ipep = new IPEn

Socket网络编程学习笔记(2):面向连接的Socket

在上一篇中,我列了一些常用的方法,可以说这些方法是一些辅助性的方法 ,对于分析网络中的主机属性非常有用.在这篇中,我将会介绍一下面向连接( TCP)socket编程,其中辅以实例,代码可供下载. 对于TCP的Socket编 程,主要分二部分: 一.服务端Socket侦听: 服务端Socket侦听 主要分以下几个步骤,按照以下几个步骤我们可以很方便的建立起一个Socket侦 听服务,来侦听尝试连接到该服务器的客户Socket,从而建立起连接进行相关通 讯. 1.创建IPEndPoint实例,用于S

Socket网络编程学习笔记(6):使用线程池提高性能(完)

在前几篇介绍中,不论是服务端的侦听还是客户端的连接都是通过新建一个 线程去执行特定功能的.在这种情况下,一量有一个新客户端需要连接,则又得 创建新的线程,而当程序创建新线程时,往往需要大量的内部开销,这对程序的 性能有一定的影响.在.NET库中提供了一种方法,可以避免一些开销.而在 Socket通讯中还有另一种访求那就是异步Socket,我不知道用这种方式的性能如 何,在这里且不管这种形式,主要来看一下用线程池解决问题. Windows操作系允许用户维持一池"预先建立的"线程,这个线程

Socket网络编程学习笔记(5):发送和接收实体类数据

在前面讲述的篇幅中,发送的都是文本信息,我们只要通过Encoding中的几 个方法把文本转化成二进制数组就可以利用Socket来传输了,这对于一些基本的 信息传输能够得到满足,但对于一些复杂的消息交流,则有些"吃力 ".我们有时候会把一些信息封闭在一个类中,如果Socket能够传送类对 象,那么一些复杂的问题能够通过面向对象来解决了,即方便又安全.大家都知 道,要想在网络上传输信息,必须要经过序列化才行,所以在传送类对象时,首 选必须对该类对象进行序列化,才能够在网络上进行传输. 序列

Socket网络编程学习笔记(4):TCP消息边界处理

在前面的几篇中,讲了关于套接字Socket以及利用套接字助手类来进行服务 端和客户端之间的通信,在此中间并没有对发送的信息进行任何的处理.在本篇 中将会讲一下TCP通信时的信息边界问题. 通过套接字或其助手类来接收信息时,是从缓存区里一次性把全部的缘存都 读取出来,只要你设置的缓存够大,它就能读取这么多,这样就会导致这样的情 况出现.如果服务端连续发送信息到客户端,如我连续发送字符串 "message 1"."message 2"."message 3&q

python网络编程学习笔记(二):socket建立网络客户端_python

1.建立socket 建立socket对象需要搞清通信类型和协议家族.通信类型指明了用什么协议来传输数据.协议的例子包括IPv4.IPv6.IPX\SPX.AFP.对于internet通信,通信类型基本上都是AF_INET(和IPv4对应).协议家族一般表示TCP通信的SOCK_STREAM或者表示UDP通信的SOCK_DGRAM.因此对于TCP通信,建立一个socket连接的语句为:s=socket.socket(socket.AF_INET,socket.SOCK_STREAM)对于UDP通

python网络编程学习笔记(一)_python

学习用书:<python 网络编程基础>作者John Goerzen 第一部分底层网络学习         Python提供了访问底层操作系统Socket接口的全部方法,需要的时候这些接口可以提供灵活而强有力的功能. (1)基本客户端操作         在<python 网络编程基础>一书中,作者列出了一个简单的Python客户端程序,具体如下: 复制代码 代码如下: import socket,sysport =70host=sys.argv[1] filename=sys.a

python网络编程学习笔记(三):socket网络服务器_python

1.TCP连接的建立方法 客户端在建立一个TCP连接时一般需要两步,而服务器的这个过程需要四步,具体见下面的比较. 步骤 TCP客户端 TCP服务器 第一步 建立socket对象  建立socket对象 第二步 调用connect()建立一个和服务器的连接 设置socket选项(可选) 第三步 无 绑定到一个端口(也可以是一个指定的网卡) 第四步 无 侦听连接 下面具体来讲这四步的建立方法: 第一步,建立socket对象:这里与客户端一样,依然是: s=socket.socket(socket.

python网络编程学习笔记(五):socket的一些补充_python

1.半开放socket 利用shutdown()函数使socket双向数据传输变为单向数据传输.shutdown()需要一个单独的参数,该参数表示了如何关闭socket.具体为:0表示禁止将来读:1 表示禁止将来写:2表示禁止将来读和写. 2.timeouts控制超时 调用socket的settimeout()函数,向其传递参数,表明超时时间设置.当访问一个socket,如果经过了参数设定的时间后,什么都没有发生,则会产生一个socket.timeout异常.例如:当程序运行后,会等待数据传入.