- 博客(6)
- 问答 (1)
- 收藏
- 关注
原创 解决selective repeat的死锁问题
简单来说就是当滑动窗口过大,在情况b的时候就无法辨别出是第一组的seq#0的包还是第二组seq#0的包,就会造成一个混收的情况,解决方法是slide window size是seq的一半。意思是如果没有收到ack的包是发送窗口中send base的包,那么窗口自动向前移动直接过掉这个包。
2024-02-19 20:03:14
459
1
原创 Java网络套接字的使用
因为在现在采用的协议大部分是HTTP1.1,因此socket是保持连接通常的,一般读取信息的方式是socket.getInputStream(), 在最先开始使用chatgpt4的时候询问,怎么判断信息发送完毕,回答当socket.getInputStream(buffer) = -1表示读取完毕,实际上等于-1表示的是通道关闭,目前我也还没找到判断关闭的方法,因此为了缓存我使用的办法是当一个通道1s内没有信息跳出循环,使用try catch进行实现缓存。第一次接触这种转发,以前做过udp的相关项目。
2024-02-16 09:45:43
327
1
原创 prolog运行逻辑思考(入门)
带入步骤,首先会进入rule3, 这时开始进行递归,但是递归的时候,会按照rule的出现顺序来进行递归,意思是会首先尝试rule 1,发现不符合,最后才是rule 3,exist([2,3],4)。这两天在复习准备prolog考试,顺便一下prolog的运行逻辑,现在我要写一个谓词叫做exist/2, arity是2,需要判断一个数字是否在一个list里面,可确定程序正确运行,最后报错false,注意,在prolog中[]空列表不可以写成[H|T]的形式,会得到答案true,探寻一下运行的逻辑和原因。
2023-12-07 22:25:10
453
原创 Prolog递归初学思考(二)
因为程序会进行回溯,在进行完twopower(0,1)之后会按照第二条规则继续进行twopower(0,1)这样由于没有终止条件,程序会一直进行,对于回溯的问题,除了可以使用用到的X=\=0,还可以用cut来进行。这样在运行的时候,会每次将X1减1,当X=0的时候,会匹配规则twopower(0,1),知道Y=1,然后回推回去,得到答案,但这样的程序依然存在问题,承接上一篇的的谓词,我们想写一个计算2的幂的谓词,twopower/2,arity是2.答案是不能得到答案,当运行query,
2023-12-07 05:25:12
363
1
原创 Prolog递归初学思考
twopower(X,Y):- X =\= 0,X1 is X-1,twopower(X1,Y1),Y1 is Y/2.这样依然存在问题,我们得到Y1,但Y时未知的变量,在谓词is种应该将已知数放在右侧,未知数放在左侧,所以正确的顺序应该是。twiopower(3,X):-X =\= 0 ,运行成功,接着X1 is 3-1, 成功,然后Y1 is Y/2 由于Y1和Y都没有初始化因此会报错,因此首先想到的是调换位置。思考一个程序,想要写一个判断2的幂的程序,谓词twopower/2,
2023-12-07 01:17:30
375
1
原创 关于如何将汇编语言字符串进行运算(含16进制)
在汇编语言中,将字符串进行运算,包含16进制需要注意的是首先要将读取的ASCII码进行转换,使其能够成为进行运算的有效数字,在对于16进制的时候还需要检查其是否为字母我们这里假设的是一空白(null)作为终止符具体代码如下SUB R1, R1, #1MOV R0, #0MOV R2, #0 //目前的MOV R3, #0 //上一个操作字符MOV R4, #0 //目前操作字符READNEXTDEC:A
2021-12-15 12:23:09
609
3
空空如也
关于#windows#的问题:汇编语言入门
2021-10-11
TA创建的收藏夹 TA关注的收藏夹
TA关注的人