每日一学之socket编程(一)

图片来自于网络

什么是socket编程

网络上的两个程序,通过一个双向通信的链路,将两个程序连接起来,那么每一段都是一个socket。因此socket常被称为“套接字”。

对于一个网络连接来说,套接字是平等的,并没有差别,不因为在服务器端或在客户端而产生不同级别。千万不要被Java中的SocketServerSocket迷糊了眼睛。

网络的分层

对于Java而言,Java的网络类始终只工作在TCP/IP网络中,始终运行在应用层和传输层上,因此,我们只需要了解适用于Internet的标准TCP/IP四层模型。

Java中Socket

Java使用客户端的socket:

1、通过构造函数创建新的socket

2、尝试连接远程主机

3、一旦建立连接之后就从socket取得输出流和输入流,使用这两个流收发数据

4、当数据传输完成之后,一端或者两端将关闭连接

Java使用服务端的socket:

1、通过构造函数创建新的ServerSocket

2、将serverSocket绑定在固定端口

3、阻塞的方式等待客户端来连接,由于服务端是不会关闭的,因此我们要使用点小手段保证服务端一直等待客户端来连接。连接上来后,就跟客户端处理一样了。

有一个小知识点:当你关闭流后,socket其实已经关闭;按照JavaAPI所说,这是一个双工通路。

上面的程序有两个个致命的缺陷,不知道大家能否看出来。那就是同时只能处理一个客户端的连接以及数据只能接收12个字节的长度。

本文来自企鹅号 - 人人会编程媒体

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏我杨某人的青春满是悔恨

HTTP知识点总结

最近互联网这个圈子不是很太平,继阿里缩招降薪,导致很多同学“被拥抱变化”之后,百度也宣布暂时停止社招了。于是有人疾呼“Winter is coming”,有人跟...

691
来自专栏Vamei实验室

树莓派:漂洋过海来看你

作者:Vamei 出处:http://www.cnblogs.com/vamei 严禁任何形式转载。

721
来自专栏漏斗社区

CTF| 吃个鸡,一起破流量分析题吧!

流量分析题是CTF杂项类常见的一种考点,考察我们分析网络流量包的能力。一般flag隐藏在某个数据包里面,或者需要从中提取一个文件出来等等,还有wifi的握手包,...

4135
来自专栏武军超python专栏

2018年8月14日TCP网络编程及具体代码

静态文件?顾名思义,静态文件就是那些不会改变的文件,例如视频音乐,图片等类似的文件 NT平台:指的是windows NT操作系统,是windows在199...

814
来自专栏web前端教室

学点http、tch协议,不用多一点就行

今天群里有同学分享了一个文章,文中说面试的时候,来的人连http协议是啥都不知道,就这样还要16K, 18K的,怎么说的出口,反正文笔很酸爽。 其实,我也不太...

1868
来自专栏运维小白

1.8 网络问题排查

1.8 网络问题排查 在NAT模式下变成为桥接模式(右下角,网络适配器) 桥接模式下的方框,不用去选择,打钩。只需要点桥接模式就行 ? 先dhlicen...

1966
来自专栏我的博客

VMware三种网络连接模式详解

1.bridged(桥接模式) 在这种模式下,使用(连接)VMnet0虚拟交换机。虚拟机就像是局域网中的一台独立的主机,它可以访问网内任何一台机器。在桥接模式下...

2412
来自专栏Coding01

推荐一个 PHP 网络请求插件 Guzzle

在写后台代码时,避免不了需要与其他第三方接口交互,如向服务号下发模板消息,有时可能需要下发超过 10 万条。这时不得不考虑使用异步和「多线程」的网络请求。

1725
来自专栏闵开慧

centos 网络配置视频地址及截图

1 地址:http://www.itercast.com/library/1 IP编址是现今使用最为广泛的网路编址协议,拥有两个主流版本:IPv4、IPv...

3325
来自专栏Vamei实验室

树莓派:漂洋过海来看你

作者:Vamei 出处:http://www.cnblogs.com/vamei 严禁任何形式转载。

872

扫码关注云+社区