天天看点

Socket编程 (连接,发送消息) (Tcp、Udp) - Part1

Socket编程 (连接,发送消息) (Tcp、Udp) 

本篇文章主要实现Socket在Tcp\Udp协议下相互通讯的方式。(服务器端与客户端的通讯)

  1.基于Tcp协议的Socket通讯类似于B/S架构,面向连接,但不同的是服务器端可以向客户端主动推送消息。

  使用Tcp协议通讯需要具备以下几个条件:

    (1).建立一个套接字(Socket)

    (2).绑定服务器端IP地址及端口号--服务器端

    (3).利用Listen()方法开启监听--服务器端

    (4).利用Accept()方法尝试与客户端建立一个连接--服务器端

    (5).利用Connect()方法与服务器建立连接--客户端

    (5).利用Send()方法向建立连接的主机发送消息

    (6).利用Recive()方法接受来自建立连接的主机的消息(可靠连接)

    

Socket编程 (连接,发送消息) (Tcp、Udp) - Part1

  2.基于Udp协议是无连接模式通讯,占用资源少,响应速度快,延时低。至于可靠性,可通过应用层的控制来满足。(不可靠连接)

    (3).通过SendTo()方法向指定主机发送消息(需提供主机IP地址及端口)

    (4).通过ReciveFrom()方法接收指定主机发送的消息(需提供主机IP地址及端口)

        

上代码:由于个人代码风格,习惯性将两种方式写在一起,让用户主动选择Tcp\Udp协议通讯

服务器端:   

Socket编程 (连接,发送消息) (Tcp、Udp) - Part1
Socket编程 (连接,发送消息) (Tcp、Udp) - Part1

客户端:

  

Socket编程 (连接,发送消息) (Tcp、Udp) - Part1
Socket编程 (连接,发送消息) (Tcp、Udp) - Part1

Tcp协议下通讯效果如下图:

  客户端:

Socket编程 (连接,发送消息) (Tcp、Udp) - Part1

  服务器端:

Socket编程 (连接,发送消息) (Tcp、Udp) - Part1

基于Udp协议下通讯效果如下图:

Socket编程 (连接,发送消息) (Tcp、Udp) - Part1
Socket编程 (连接,发送消息) (Tcp、Udp) - Part1

总结:Tcp协议相对通讯来说相对可靠,信息不易丢失,Tcp协议发送消息,发送失败时会重复发送消息等原因。所以对于要求通讯安全较高的程序来 说,选择Tcp协议的通讯相对合适。Upd协议通讯个人是比较推荐的,占用资源小,低延时,响应速度快。至于可靠性是可以通过一些应用层加以封装控制得到 相应的满足。

继续阅读