库升汽车网
您的当前位置:首页基于C的网络通信实现

基于C的网络通信实现

来源:库升汽车网




基于C#的网络通信实现
C#Microsoft20007月推dl.NETFramework的初版时提出的一种全新语言⑴。其派生于C/C++,语法更加简化,非常适合快速学习开发,C#语言吸収了C/C++的优点,摒弃了它们的繁琐之处。

利用VisualC#语言可以方便快速编写应用程序,互联网时代己经离不开网络信息的交换,为了方便不同计算机和不同网络之间相互连接,进行数据资源共享,需要使用网络通信协议。当

前,TCP/IP协议是用得比较普遍的类型⑵。

1实现网络通信的主要类
网络通信一般会用到三大类,使用Sockets类具有许多优势,与Sockets网络应用程序有关的类处于System.Net.Sockets命名空间中,Socket类拥有许多属性和方法,完全支持套接字的编程,可以实现对端口的绑定、监听以及连接、数据传输等目的⑶。

1.1TcpCIient
基于TcpCIient类的编程,使得以传输控制协议TCP网络通信的调用形式更为方便,其主要用于Client端编程,如表1列出了其常用属性和方法。

1TcpCIient有关的属性和方法

1.2 TcpListener

TCP协议服务器端的设计通常会用到TcpListener类,它属于.NET框架下网络通信中的应用层,通常是监视TCP端口上客户端的请求,如表2列出了其常用的属性和方法。

2TcpListener有关的属性和方法

属性或方法

用途

LocalEndpoint 属性

监听套接字的Local主机

Server属性

获得Socket的基本信息

TcpList en er()方法

创立一个TcpListener对象

Start()方法

开始监听

AcceptSocket()方法

接受连接请求

AcceptTcpClient()方法

接受请求连接

Stop()方法

停止连接

1.3Socket
Socket类提供了对套接字的支持⑶,由于C#语言语法简洁、功能强大,因此基于套接字的网络编程变得十分简单,如表3列岀了其常见属性和方法。

3Socket有关的属性和方法

属性或方法

用途

Available 属性

得到接收数据量的大小

Connected 属性

得到是不是连接成功的信息

ProtocolType 属性

说明协议类型





SocketType 属性

说明套接字的类型

Socket Accept()方法

构造一个新的套接字对象

GetType ()方法

获得对象的类型

Connect()方法

用于连接远程终端

Poll()方法

用于查看套接字的状态

EndConnect()方法

用于结束为处理的远程连接请求

Receive()方法

从特定被主机接收数据

Equals()方法

用于对比两个对象是不是一样

2通信机制的设计与实现
TCP网络通讯运行时,它将会先初始化服务器端的程序,接着使用Socket类来创立一个实例,继而使用Bind()方法将实例与服务器IP地址绑定在一起,做好准备工作;接着使用Listenerf)方法进入开始监听客户机端的状态,同时指明等候服务器请求队列的长度;然后,使用Accept()方法等候客户端发出连接申请。客户端与服务端一样,也会使用Socket创立一个实例,然后使用Connect()方法与服务器建立连接。在服务器端监听的过程中,当客户端发出连接请求且被服务器端接收到,就表明服务器端与客户机端连接成功,此时可以进行通信了,可利用网络流

Networkstream的读Read()方法以及写Write()方法达到发送或接收数据包的目的,其通讯流程如图1所示。

'

<

llttl

?S



1服务端与客户端通信流程图3实验结果与分析





_______ 2服务端监听七唤塚序_确湍

3客户端请求连接


?初天4曲一喜户黄
4服务端发送消息七駅天4_舉珈





6客户端发送消息


smr

127 0,0.1—

北鮭

邸虻1

8080

艸信息:

发送值息:

就花开》〉>准很和Mfm 好久不见?最近胸? W> 岀门7屿?

脳卸口险am]| m?L]目臓收删施

与客户沁

7服务端接收消息

服务端与客户端界面设计如上图所示,服务端输入有效且格式正确的IP地址以及监听 端口,点击开始监听按钮,客户机端输入相同的IP地址和请求端口,点击请求连接按钮, 在服务器端statusStripl ±显示与客户建立连接,如图2所示;在客户机端的statusStripl上 也会自动显示与主机和端口连接成功,如图3所示。此时服务器端和客户机端就能互相通信 了。如图4所示,在服务器端发送消息框中输入问候语,点击发送信息按钮,消息成功发送,

如图5所示,在客户机端的接受消息框中会显示所接收到的信息,即服务器端的发送消息框中的信息,消息成功接收。如图6所示,在客户机端的发送信息框中输入回复的消息,点击



发送消息按钮,信息成功地从客户机端发送出去。如图7所示,在服务器端的接收信息框中会显示来自客戶机端的消息,即消息成功接收°达到了服务器端和客户机端双向通信的目的。4结语

笔者采用VisualStudio 2012开发平台,利用C#Windows窗体应用程序进彳亍了网络通信的探讨,用到了网络编程常用的类,方便快速地建立了网络连接,Sever端和Client端成功通信,完成了数据发送与接收。TCP在连接方式上一般能够分为长期连接和短期连接,考虑TCP通讯的特点和本设计的主旨,笔者选用长期连接,连接成功后,通讯不会主动闭塞,服务器端和客户

机端可以长时间通信,符合聊天的特点。





显示全文