一、Socket的概念 Socket是应用层与TCP/IP协议族通信的中间软件抽象层,它是一组接口。在设计模式中,Socket其实就是一个门面模式,它把复杂的TCP/IP协议隐藏在Socket接口后面,对用户来说,一组简单的接口就是全部,让Socket去组织数据,以符合指定的协议 由于socket已 ...
分类:
其他好文 时间:
2020-04-20 21:17:30
阅读次数:
63
socket层 Socket为我们封装好了TCP/IP协议,遵守Socket规定编程也就遵循了TCP/IP标准 也有人将socket说成ip+portip是用来标识互联网中的一台主机的位置,而port是用来标识这台机器上的一个应用程序ip地址是配置到网卡上的,而port是应用程序开启的,ip与por ...
分类:
编程语言 时间:
2020-04-20 18:51:33
阅读次数:
72
socket 首先,是干什么的 socket 是应用层与tcp/ip等层的中间层,它是一个抽象层,将各种协议封装起来,用socket调用就好了。 import socket 在应用层中,使用这个socket实现数据的传输。 应用: 服务端: 客户端: 注意: ...
分类:
其他好文 时间:
2020-04-20 18:47:17
阅读次数:
60
@[toc]一、信号量的概念信号量(信号灯)本质上是一个计数器,用于协调多个进程(包括但不限于父子进程)对共享数据对象的读/写。它不以传送数据为目的,主要是用来保护共享资源(信号量、消息队列、socket连接等),保证共享资源在一个时刻只有一个进程独享。信号量是一个特殊的变量,只允许进程对它进行等待信号和发送信号操作。最简单的信号量是取值0和1的二元信号量,这是信号量最常见的形式。通用信号量(可以
分类:
系统相关 时间:
2020-04-20 16:14:27
阅读次数:
93
一、如何让程序在后台运行在之前的章节中,如果要运行程序,在命令提示行下输入程序名后回车,程序被执行,然后等待程序运行完成,在程序运行的过程中,也可以用Ctrl+c中止它。在实际开发中,我们需要让程序在后台运行,没有界面,没有用户输入数据,例如socket服务端程序book250。如果想让程序在后台运行,有两种方法。1、加“&”符号如果想让程序在后台运行,执行程序的时候,命令的最后面加“&a
分类:
系统相关 时间:
2020-04-20 15:25:29
阅读次数:
97
book241.cpp和book242.cpp程序已经有点长了,有些啰嗦了,如果还想扩展功能,或用于多进程、多线程,程序结构将非常复杂。不管是socket通信程序的客户端还是服务端,准备工作的代码又长又难看占地方,影响了主程序的结构,必须分离出来。如何分离?封装。一、C的封装方法C语言只能把程序代码封装成函数。1、客户端示例(book245.cpp)/**程序名:book245.cpp,此程序用于
分类:
其他好文 时间:
2020-04-20 12:04:48
阅读次数:
64
@[toc]前面的章节介绍socket通信的时候,socket的服务端在同一时间只能和一个客户端通信,并不是服务端有多忙,而是因为单进程的程序在同一时间只能做一件事情,不可能一边等待客户端的新连接一边与其它的客户端进行通信。一、并发的服务端如果把socket服务端改为多进程,在每次accept到一个客户端的连接后,生成一个子进程,让子进程负责和这个客户端通信,父进程继续accept客户端的连接,s
分类:
系统相关 时间:
2020-04-20 11:45:02
阅读次数:
79
IO的方式通常分为几种,同步阻塞的BIO、同步非阻塞的NIO、异步非阻塞的AIO。 一、BIO 在JDK1.4出来之前,我们建立网络连接的时候采用BIO模式,需要先在服务端启动一个ServerSocket,然后在客户端启动Socket来对服务端进行通信,默认情况下服务端需要对每个请求建立一堆线程等待 ...
分类:
其他好文 时间:
2020-04-19 18:15:45
阅读次数:
65
1、recv、read recv和read的区别?? recv只能用于套接口io,不能用于文件io或者其他io read可以用于各种io recv相较而言多了flag参数,MSG_OOB(接收紧急数据指针)MSG_PEEK(接收缓冲区数据,但是并不急着清除) 2、封装按行读取readline 3、g ...
分类:
其他好文 时间:
2020-04-19 12:52:53
阅读次数:
77
SpringBoot项目启动错误,错误信息如下 Connected to the target VM, address: '127.0.0.1:53101', transport: 'socket' Exception in thread "main" java.lang.NoClassDefFou ...
分类:
编程语言 时间:
2020-04-18 18:24:16
阅读次数:
135