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

在上一篇中已经介绍了利用Socket建立服务端和客户端进行通信,如果需要 的朋友可访问《Socket网络编程学习笔记(2):面向连接的Socket》。在本篇 中,将利用C#套接字的助手类来简化Socket编程,使得刚刚接触到网络编程的 朋友们更容易上手。

跟上篇一样,通过C#套接字的助手类来编程同样分 服务端和客户端。

一、服务端侦听模式

1、创建套接字与 IPEndPoint绑定,并设置为侦听模式。

1//创建IPEndPoint实例
2      IPEndPoint ipep = new IPEndPoint(IPAddress.Any, 6001);
3      /**//*
4      //创建一个套接字
5      serverSocket = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);
6      //将所创建的套 接字与IPEndPoint绑定
7      serverSocket.Bind(ipep);
8       //设置套接字为收听模式
9       serverSocket.Listen(10);
10      */
11       serverTcp = new TcpListener(ipep);
12      serverTcp.Start ();

其中注释掉的部分是利用Socket来创建侦听,这里我们可以 看到用套接字助手类只通过二行就可以建立起侦听,而且如果要更方便一些,可 以不指定IPEndPoint,单单指定端口就可以了,如:

   1serverTcp = new TcpListener(6001);
2      serverTcp.Start ();

2、侦听并获取接入的客户Socket连接

1while (true)
2      {
3        try
4         {
5          //在套接字上接收接入的连接
6           //clientSocket = serverSocket.Accept();
7           clientTcp = serverTcp.AcceptTcpClient();
8           clientThread = new Thread(new ThreadStart (ReceiveData));
9          clientThread.Start();
10        }
11        catch (Exception ex)
12        {
13          MessageBox.Show ("listening Error: " + ex.Message);
14         }
15      }

在这里用clientTcp = serverTcp.AcceptTcpClient();来接收连接的TcpClient对象,我们了可以通过

1clientSocket = serverTcp.AcceptSocket();

来 接收一个Socket对象,如果接收的是一个Socket对象,那么接下来的接收和发送 信息跟上篇一样,如果接收的是TcpClient对象,那么我们来看一下如何来接收 和发送信息:

时间: 2024-11-04 23:03:43

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

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

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

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

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

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

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

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

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

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

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

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通

【网络编程2】Java数据报套接字

这篇博文是本文学习<Java网络程序设计>书中第5章数据报套接字的学习总结.初学者网友学习这篇Java数据报套接字文章,如果难于理解文章前面理论部分,可以先运行后面的程序,边看运行后面的程序边理解前面的原理,这对初学者是最好的方法.所有源代码都在文章后面我的github链接代码中. --惠州学院13网络工程 吴成兵 20160609 目录 1 目录 1 一 数据报套接字概述 二 DatagramPacket 21 创建DatagramPacket对象 211 创建的DatagramPacket

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.