这个啊,我简单的说一下。
首先,编程的话,在windows环境下,肯定用的是winsock来编写网络程序。
如何检测客户端和服务端连接成功
肯定是用服务端首先bind,在listen,然后调用个循环accept,当客户端connect的时候,就开一个线程来服务。accept能返回一个sock值,而不是invaid_socket,那肯定就代表连接成功的啦。
断线处理
断线的话,必须得有一段send数据后,发现没有返回,那么程序就知道断线了。至于如何检测,可以设置一定的时间间隔,发送检测数据包,没有断线的话,有返回值,可以发送,断线的话,程序就知道了。
具体的编程和思路,你还是找本书看吧,不知道你用的什么语言编写的,不过估计在windows环境下都差不多。可以看下老罗的《windows环境下32位汇编语言程序设计》里面有个聊天室的案例,讲的蛮清楚的。虽然是汇编的,但是都是相通的,你应该看得懂。
1写出下列程序段执行的结果,(AL)= (DL)=
并指出此程序段完成的是什么功能?
MOV CL, 4
MOV AL, 87d=57H
MOV DL, AL
AND AL, 0FH
OR AL, 30H
SHR DL, CL
OR DL, 30H
(AL)=37H (DL)=35H
程序段完成功能是:把AL中的16进制数高位送DL,移位取出低位,
再分别转化为对应的ASCII码
2假定DS=2100H,BX=0100H,SI=0002H;
[21100H]=12H,[21101H]=34H,[21102H]=56H,[21103H]=78H。
2100:100H=12H,34H,56H,78H
分析下列指令执行后寄存器的内容。
(1) MOV AX,[101H] ;ax=5634H
(2) MOV AX,[BX+2] ;ax=[0102H]=7856H
(3) MOV AL,[BX][SI+1] ;al=[0103H]=78H
(4) MOV AX,100H[SI] ;ax=[0102H]=7856H
3识别下列指令正确与否,对错误指令,说明出错的原因。
(1) MOV DS,100 × ;数据段不允许用立即数赋值
(2) MOV [1000H],23H ×;立即数送入内存需指明是字还是字节
(3) MOV [1000H],[2000H] ×;源和目标不能同为内存数
(4) MOV DATA,1133H ;如用DATA定义过数据段,DATA就不能再用作变量名
(5) MOV 1020H,DX ×;目标不能是立即数
(6) MOV AX,[0100H+BX+BP] ×;寻址时,BX、BP只能用一个
(7) MOV CS,AX ×;CS不能直接赋值
(8) PUSH AL ×;堆栈不能压入字节,只能压入字(32位压入双字)
(9) PUSH WORD PTR[SI] √
(10) IN AL,378H ×;端口寻址大于0FFH,端口号源要放入DX
(11) OUT 80H,AX √
(12) MOV CX,[AX+SI]×;AX不能用于内存寻址
16位DOS下编程:
《ibm-pc汇编语言程序设计(第2版)》清华大学出版社。沈美明 著
《汇编语言》 王爽 著
《ibm-pc汇编语言程序设计(第5版)》人民邮电出版社。Peter Abel 著 沈美明 温冬婵 译
32位Windows下编程:
Intel汇编语言程序设计(第五版)
如果没接触过汇编语言,那么建议从16DOS下的编程开始学起,那是汇编语言的基础。强烈推荐《ibm-pc汇编语言程序设计(第2版)》清华大学出版社。沈美明 著 这本书讲的非常专业,但是非常难啃,如果你没有足够的兴趣,那么你是很难静下心来完完整整看完这本书的。如果你都吸收消化了,恭喜你,你已经很好的掌握了汇编语言。
如果你想快速上手,不想学的那么太仔细,可以从王爽的那本书学起,他写的书和大学教材截然不同,有外国人的风范。读起来通俗易懂,很容易让你理解。
第三本书是国外的经典教材,实用性比较强,不过不建议初学看,因为基础的东西他讲的不多,像那些概念的东西他都是一笔带过,重要的是上机 *** 作和实际应用(这也许就是国内与国外教材最大的差别吧)
至于32位的windows编程纯属你的爱好了,逆向工程和黑客的必须要掌握他。
朋友,我来告诉你吧,看你给的分多的面子上,说的详细点。1 先大概看看C,(记住是大概),了解一下高级语言的编程技巧。2 然后学习汇编语言(16位和32位都要学,先学16位,然后学32位,32位就是你说的win32汇编),因为汇编语言是很多相关课程(比如数据结构, *** 作系统,微机原理)等的重要基础,这一点不用多讲,等你学完汇编之后,你就会建立起计算机最底层的编程意识,因为汇编语言是针对机器的语言。。。。如果从事计算机科学研究的话,汇编语言是必不可少的,语言因很简单,因为汇编语言是面向机器的(这点你开始学习以后就会体会到),,我们每天工作的平台都是机器,不会机器语言(汇编语言)行吗??就好比我们想出国不会英语一样,行吗?? 3 然后深入的学习C 4 你少了一门课程,就是微机原理。数据结构,微机原理, *** 作系统这三门课程的先后为 微机原理----- *** 作系统-------数据结构,因为"微机原理"是一些硬件知识+汇编,所以要在" *** 作系统"之前看,为 *** 作系统打基础。数据结构是纯软件的东西,和其他两门不分先后,不过数据结构稍微难一点,可以在那两门之后看。5------把win32程序设计放到最后 。。。。。。。。。。。希望能对你有帮助,纯手打。。给分!!
1将AX中的值以十六进制形式显示。
要求:主程序利用寄存器把AX的值传送给子程序。
在子程序中将AX中的值以十六进制形式显示。
=====================================
DATA SEGMENT
D1 DW 13276 ;数: 0~65535
DATA ENDS
;------------------------------
CODE SEGMENT
ASSUME CS:CODE, DS:DATA
START:
MOV AX, DATA
MOV DS, AX
;------------------------------
MOV AX, D1 ;取来数字
CALL DISP_AX
MOV DL, 'H'
MOV AH, 2
INT 21H ;输出H
;------------------------------
MOV AH, 4CH
INT 21H ;返回DOS
;------------------------------
DISP_AX:
MOV BX, 16 ;16进制,要除16
MOV CX, 4 ;求4位16进制数
ABC:
CWD ;将AX扩展到DX
DIV BX
PUSH DX ;保存余数到堆栈
LOOP ABC
MOV CX, 4 ;显示4位
ASD:
POP DX
CMP DL, 10
JB A48
ADD DL, 7
A48:
ADD DL, 48
MOV AH, 2
INT 21H ;输出
LOOP ASD
RET
;------------------------------
CODE ENDS
END START
===========================
2编写子程序,完成的功能是将DL中的2位十六进制数转换为对应ASCII码。
说明:入口参数AL=待转换的2位十六进制数
出口参数DX=转换后的ASCII码,(高字节对应高位、低字节对应低位)
举例:若AL=2AH,则DX=3241H。
0----9转换为30H----39H +30H
A---F转换为41H----4FH +30H+7H
;------------------------------
AL_ASC_DX:
MOV AH, 0 ;要除16
MOV CL, 16 ;求16进制数
DIV CL
CMP AL, 10
JB A48
ADD AL, 7
A48:
ADD AL, 48
MOV DH, AL
CMP AH, 10
JB A482
ADD AH, 7
A482:
ADD AH, 48
MOV DL, AH
RET
;------------------------------
以上就是关于如何检测TCP连接是否成功,或者已经连接成功全部的内容,包括:如何检测TCP连接是否成功,或者已经连接成功、汇编语言程序设计习题、有没汇编的教材啊,推荐几本。等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)