java socket编程基础

java socket编程基础我在学习 Socket 时 总是感觉文章看不懂 视频又好长 所以留下这篇学习笔记 权当做同学间学习参考 与个人回顾吧 简介 Socket 译做 管道 套接字 是一个便捷的类 用于封装通信时所涉及到复杂底层逻辑 也正因此我们就可以使用十分简便且直观的 Socket 类 并调用其中方法 就可轻松地实现数据通信 计算机间数据传输 正文 所以 在 Socket 中 抽象出了服务端 和客户端 的概念

大家好,我是讯享网,很高兴认识大家。



我在学习Socket时,总是感觉文章看不懂,视频又好长,所以留下这篇学习笔记,权当做同学间学习参考,与个人回顾吧.

简介

Socket(译做:管道/套接字)是一个便捷的类
用于封装通信时所涉及到复杂底层逻辑
也正因此我们就可以使用十分简便且直观的Socket类,并调用其中方法,就可轻松地实现数据通信/计算机间数据传输.

正文

所以,在Socket中,抽象出了服务端客户端的概念,并提供了其所需要的方法.

服务端

 
讯享网 

2.绑定端口IP
我这里是从我写好的Winform窗体中获取的字符串.
其中txtIP是本机(服务端设备)IP地址;txtPort里填的是端口号,
我这里就先用的是31201,大家也可以在10000-6000之间随便填(好像是)

讯享网

3.开始侦听

 

4.开始接受客户端的链接

讯享网

5.接收数据

 

并提供了向客户端传输数据的方法

 

客户端

客户端传输数据的逻辑和服务端十分类似,或者说,现在所提出的所谓从客户端与服务端两个方面去理解Socket,本身就是一个类的两种不同使用方法,所以,读到这里的同志,也请一定注意:Socket java socket编程基础 本质上只是封装了通信功能的一个C#类,不要偏颇的仅仅以服务端和客户端的角度,去看待Socket,这是不全面的,服务端和客户端的功能,只是比较常见的需求,并应用了Socket技术,如此而已.
接下来是客户端的应用过程:
1.创建Socket对象

 

2.连接服务器端Socket

 

3.接收服务器端消息

 

4.发送消息

 

注意哦,我给出的代码例子,往往是可以直接在一个方法中使用的,但是,我不推荐这么做:
一是违反了面向对象的Single Responsibility Principle(单一责任原则);
二是,我给出的代码为了保证可读性(变量名可理解性)取名很直接.
尤其是在字符数组变量的data,存在变量名重复的问题,这时要么可以选择把他们放在不同的方法中,要么更改变量名,但是我更推荐把他们写在不同的方法中!

最后向大家说明一下,为什么客户端没有绑定IP地址和Post呢?
因为客户端在进行socket网络通信时,所携带的数据包就会包含自己的IP,而发送消息时所使用的端口则是由计算机自动分配的,
在第一次通信后,服务器就会保存相应的客户端ip和post到代理socket,以此来和客户端进行通信.

到了最最后,我想我应当给大家一些多线程的写法,以帮助大家写出更加丰满的程序,否则按照这个教程以上的知识,我们只能写出1对1的沟通程序,而这往往是具有一定局限性的.

 

我想大家如果有一定C#基础的话可以看出,在这个线程的开辟中我们使用了,委托和Lambda表达式的相关知识,如果没学过可以去学,或者等我出学习日志,咱们一起学,咳咳,这些是后话
接下来更改了IsBackground的属性,将进程标志成了后台进程,然后开启了这个线程,线程将在执行完所有的ParmeterizedThrendStart委托中的方法后结束
C# IsBackground作用
这是前台进程和后台进程的区别
C#多线程系列(1):Thread
这是多线程系列课程


小讯
上一篇 2024-12-29 12:54
下一篇 2024-12-29 23:55

相关推荐

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容,请联系我们,一经查实,本站将立刻删除。
如需转载请保留出处:https://51itzy.com/kjqy/5540.html