返回首页
当前位置: 主页>开发编程语言>

C#基于TCP协议的服务器端和客户端通信编程的基础教程

时间:2018-06-06 15:09来源:USB开发群 作者:USB开发频道 点击:

  

运行在TCP之上常见的网络应用协议有比如HTTP、FTP、SMTP、POP3、IMAP。
TCP是TCP/IP体系中最重要的传输协议,它提供全双工和可靠交付的服务,是大多数应用协议工作的基础。
TCP是一种面向连接(连接导向)的,可靠的,基于字节流的传输层通信协议。

内容来自dedecms

TCP的工作过程

织梦内容管理系统

建立连接

织梦内容管理系统

传输数据

dedecms.com

连接的终止 本文来自织梦


TCP的主要特点
1.TCP是面向连接的协议
2.是端到端的通信。每个TCP连接只能有两个端点,而且只能一对一通信,不能点对多的
的直接通信
3.高可靠性
4.全双工方式传输
5.数据以字节流的方式传输
6.传输的数据无消息边界

织梦好,好织梦

关于线程
利用TCP开发应用程序时,.net框架提供两种工作方式,一种是同步工作方式,另一种是异步工作方式。
同步工作方式是指利用TCP编写的程序执行到监听或者接收语句,在未完成当前工作前不再。
继续往下执行,线程处于阻塞状态,直到该语句完成后才能继续执行下一条语句。
异步工作方式是指程序执行到监听或者接收语句时,无论当前工作是否完成,都会继续往下执行。 织梦好,好织梦

TcpListener与TcpClient类常用方法与属性 织梦好,好织梦

TCPListener类用于监听客户端连接请求,TCPClient类用于提供本地主机和远程主机的连接信息。
两个类都位于 System.Net.Socckets命名空间下。 本文来自织梦

1.TCPListener类常用的方法:

织梦内容管理系统

(1)AcceptSocket:从端口处接收一个连接并赋予它Socket对象
(2)AcceptTcpClient:从端口处接收一个连接并赋予它TCPClient对象
(3)Equals:判断两个TcpListener对象是否相等
(4)GetType:获取当前实例的类型
(5)Pending :确定是否有挂起的连接请求
(6)Start:开始接听传入的连接请求
(7)Stop:关闭监听器
(8)ToString:创建TcpListener对象的字符串表示 织梦内容管理系统


2.TcpClient常用的属性与方法
属性:
(1)Client:获取或设置基础套接字
(2)LingerState:获取或设置套接字保持连接的时间
(3)NoDelay:获取或设置一个值,该值在发送或接收缓存冲未满时禁止延迟、
(4)ReceiveBufferSize:获取或设置TCP接收缓存区的大小
(5)ReceiveTimetut:获取或设置套接字接收数据的超时时间
(6)SendBufferSize:获取或设置TCP发送缓存区的大小
(7)SendTimeout:获取或设置套接字发送数据超时时间 织梦好,好织梦

方法:
(1)Close:释放TcpClient实例,而不关闭基础连接
(2)Connect:用指定的主机名和端口号将客户端连接到TCP主机
(3)BeginConnect:开始一个远程主机连接的异步请求
(4)GetStream:获取能够发送和接收数据的NetworkStream对象 织梦好,好织梦

TCP编程的一般步骤
1.网络通信的最基本的前提就是客户端要先和服务器建立TCP连接
2.服务端要不断的监听客户端是否有连接请求、并且服务端能要识别特定的客户端
3.连接并创建对应的套接字
4.发送数据和接收数据

dedecms.com


编写服务器端程序的一般步骤
1.创建一个TcpListener对象,然后调用该对象的Start方法在指定的端口进行监听
2.在单独的线程中,首先循环调用AcceptTcpClient方法接收客户端的连接请求
,从该方法中的返回结果中得到与该客户端对应的TcpClient对象,并利用该对象
的GetStream方法得到NetworkStream。然后再利用该对象得到其他使用更方便的
对象,比如BinaryReader对象、BinaryWrite对象,为进一步与对方通信做准备。
3.每得到一个新的TcpClient对象,就创建一个与客户对应的线程,在线程与对应的
客户进行通信。
4.根据传送信息的情况确定是否关闭与客户连接。

内容来自dedecms

using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Windows.Forms; using System.Threading; using System.Net.Sockets; using System.Net; using System.IO; namespace TCP { public partial class TcpListenerTest : Form { public TcpListenerTest() { InitializeComponent(); } //声明 private IPAddress localAddress;// IP地址 IPAddress类 在命名空间 using System.Net下 private const int port = 58080;//端口 private TcpListener tcpListener;//监听套接字 TcpLestener与TcpClient类 在命名空间 using System.Net.Sockets下 private TcpClient tcpClient;//服务端与客户端建立连接 private NetworkStream newworkStream;//利用NetworkStream对象与远程主机发送数据或接收数据\ private BinaryReader binaryReader;//读取 BinaryReader与BinaryWriter类在命名空间using System.IO下 private BinaryWriter binaryWrite;//写入 private void Form1_Load(object sender, EventArgs e) { IPAddress[] listenerIp = Dns.GetHostAddresses("www.baidu.com");//返回主机指定的IP地址 localAddress = listenerIp[0]; //初始化IP地址为本地地址 tcpListener = new TcpListener(localAddress,port);//创建TcpListener对象 tcpListener.Start();//开始监听 Thread thread = new Thread(AcceptClientConnect);//启动一个线程接收请求 thread.Start();//启动线程 } //发起请求 private void AcceptClientConnect() { while(true) { try { tcpClient = tcpListener.AcceptTcpClient();//从端口接收一个连接,并赋予它TcpClient对象 if (tcpClient != null) { newworkStream = tcpClient.GetStream(); binaryReader = new BinaryReader(newworkStream); binaryWrite = new BinaryWriter(newworkStream); } } catch { break; } } } } }

本文来自织梦

TCP编程 客户端程序一般步骤
1.利用TcpClient的构造函数创建一个TcpClient对象
2.使用Connect方法与服务器建立连接
3.利用TcpClient对象的GetStream对象得到网络流,然后利用该网络流与服务器进行数据传输
4.创建一个线程监听指定的端口,循环接收并处理服务器发送过来的信息。
5.完成工作之后,想服务器发送关闭信息,并关闭与服务器的连接。 本文来自织梦






秦华 『上海买保险』上海地区人寿保险资深寿险顾问 上海外籍人士买保险-高端人士医疗办理
服务项目:儿童医疗/子女教育金/养老保险/重大疾病/意外伤害/员工团险/公众责任
免费热线『上海』:13761630213, QQ:107242375, Email:victor.qin@qq.com
选择保险事业 为了爱,为了一份坚定的承诺!MSN:
上海地区请直接拨打本人电话,应约免费上门提供免费保险方案。
Baoxian.ws>>           旅行签证保险、上门办理>>        重大疾病网>>     上海重大疾病一览    
友情链接: 走在上海人寿保险的前端    和讯保险博客    上海投保在线    Shanghai Insurance    秦华的个人简历


顶一下
(0)
0%
踩一下
(0)
0%
------分隔线----------------------------
图文并茂 我的链接
最新评论 查看所有评论
发表评论 查看所有评论
请自觉遵守互联网相关的政策法规,严禁发布色情、暴力、反动的言论。
评价:
表情:
用户名: 密码: 验证码:
上海高端医疗/住院医疗保险信息
上海保险规划师信息
上海子女教育理财保险信息
上海保险规划师信息
上海女性高端生育保险方案-等待期
上海保险规划师信息
上海三口之家家庭保障方案
上海保险规划师信息
上海女性特色重大疾病保险方案
上海保险规划师信息
上海女性白领理财保险方案
上海保险规划师信息
上海养老理财规划保险方案
上海保险规划师信息
通过网络取得初步咨询
  •    
上海办理-免费咨询送计划书
上海买保险
上海办理-申根签证 出国旅行保险
上海买保险
上海买保险,海外基金,买保险,友邦保险,中国人民健康保险,养老保险,儿童保险,儿童医疗,子女教育金,太平洋保险,医疗保险,工伤保险条例,中国人寿保险,保险公司,中国平安保险,医疗险,进口药,自费药,外籍人士医疗,泰康人寿,英国保诚集团,上海综合保险,国际医疗保险,上海医疗保险,上海社会保险,上海养老保险,上海市综合保险,上海平安保险,上海太平洋保险,和睦家医院,上海综合保险卡,买保险,高端医疗,重大疾病,意外伤害,定期寿险,家庭理财,友邦保险,金茂大厦,少儿互助基金,上海社保,太平洋集团,港安医院