步步测试完善Java中Socket通信图解法(一)

目录


简介

Java中Socket通信简介

单线程一对一服务器1——>1客户端

单线程一对一服务器1<——>1客户端

多线程一对多服务器1<——>N客户端【非聊天室的服务器通过用户输入发送数据】

多线程一对多服务器1<——>N客户端【聊天室】

多线程最终服务器和客户端集成一体【swing程序】



简介:
无论是在Java语言还是C++语言中,初学一个知识点,通常一般都是在dos黑屏中运行。比如开始学习HelloWorld,我们都是在dos黑屏中掌握。
虽然程序员不在乎设计语言,只要掌握其核心思想原理。但是学习两种语言后,发现对客户端程序很吃力,对窗体形式基础很薄弱。
也许很多东西只有在控制台中运行即可。但是有些东西在dos黑屏中,确实很难理解或很难给人视觉理解。
比如socket编程在这方面就是有很大的感触。在C++中dos中运行socket编程,始终无法理解服务器与客户端集成一体。但是结局是,人家在VC窗体中使用CScoket的确集成在一块了。(后来自己窗体中只是做了连接,初步理解服务器与客户端集成一体)。使用底层的winsock32,使用起来不不方便。需要初始化,加载,监听。连接等。(只是初步学者的感觉)但是无论是VC封装的CSocket,还是Java中封装的Socket,使用起来很方便。
Java中Socket通信简介:

那这篇博客就给大家介绍,Java中Socket通信。记录自己是如何一步步理解Socket。希望此博客能够解答像我这样初学者疑惑。
TCP协议与UDP协议区别:
TCP:安全可靠,不适合传输大数据量的数据。
UDP:不安全可靠,适合传输大数据量的数据。
对于安全与否,是说的TCP是基于三次握手协议。首先连接,判断对方是否在线或开启服务。然后发送数据,再次是回复收到的标识。
而UDP而不需要监听,连接。无论对方是否在线或开启服务,直接发送数据。若对方收到数据,也不回复,这样,若丢包,大家都不知道。都以为对方收到了,或者反正发送了,后果怎么样,不管。至少我发送了。
当然这是主要的区别。若想对两者协议具体区分,比如其中的报文长度什么的,这方面只是建议看看TCP/Ip详解这种类似的书籍。
那Java中TCP协议中的socket通信如下图。我们在理解通信时,会区分服务器和客户端。但是最后,其实,没有说所谓的严格的服务器与客户端。但是为了好理解,我们先划分。
TCP协议中的Socket通信。
其中:服务器端是用ServerSocket来表示。客户端使用Socket。服务器初始化完毕后,等待客户端连接,若有客户端连接,则两者可以进行通信。两者通信是使用流的形式来表示。
而UDP协议中的Socket通信。
其中,根据UDP特性,其中服务器不需要监听,所以只要客户端连接,指定相应的服务器,则就可以正常交流。而交流的载体是通过DatagramPacket对象。因为DatagramPacket中包含要发送的目的地。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值