亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? server.asm

?? Windows環境下32位匯編語言程序設計配套書源碼第16章
?? ASM
字號:
;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
; Sample code for < Win32ASM Programming >
; by 羅云彬, http://asm.yeah.net
;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
; Server.asm
; 使用 TCP 協議的聊天室例子程序 —— 服務器端
;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
; 使用 nmake 或下列命令進行編譯和鏈接:
; ml /c /coff Server.asm
; rc Server.rc
; Link /subsystem:windows Server.obj Server.res
;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
		.386
		.model flat, stdcall
		option casemap :none   ; case sensitive
;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
; Include 數據
;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
include		windows.inc
include		user32.inc
includelib	user32.lib
include		kernel32.inc
includelib	kernel32.lib
include		wsock32.inc
includelib	wsock32.lib
;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
; equ 數據
;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
DLG_MAIN	equ	2000
IDC_INFO	equ	2001
IDC_COUNT	equ	2002
WM_SOCKET       equ	WM_USER + 100
TCP_PORT	equ	9999
MAX_SOCKET	equ	100	;聊天室最大容量
;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
; 數據段
;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
		.data?
hWinMain	dd	?
hSocket		dd	?
dwCount		dd	?
szReadBuffer	db	32768 dup (?)
szBuffer	db	32768 dup (?)
stTable		dd	MAX_SOCKET dup (?)
		.const
szErrBind	db	'無法綁定到TCP端口9999,請檢查是否有其它程序在使用!',0
szFormat	db	'【客戶端#%08x】- %s',0dh,0ah,0
;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
; 代碼段
;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
		.code
;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
; 在客戶端列表中加上一個 socket
;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
_AddClient	proc	_hSocket

		invoke	WSAAsyncSelect,_hSocket,hWinMain,WM_SOCKET,FD_READ or FD_CLOSE
		xor	ebx,ebx
		mov	esi,offset stTable
		.while	ebx <	MAX_SOCKET
			.if	! dword ptr [esi]
				push	_hSocket
				pop	[esi]
				inc	dwCount
				invoke	SetDlgItemInt,hWinMain,IDC_COUNT,dwCount,FALSE
				ret
			.endif
			inc	ebx
			add	esi,4
		.endw
		invoke	closesocket,_hSocket
		ret

_AddClient	endp
;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
; 從客戶端列表中去掉一個 socket
;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
_RemoveClient	proc	_hSocket

		xor	ebx,ebx
		mov	esi,offset stTable
		mov	edi,_hSocket
		.while	ebx <	MAX_SOCKET
			.if	[esi] == edi
				invoke	closesocket,[esi]
				mov	dword ptr [esi],0
				dec	dwCount
				invoke	SetDlgItemInt,hWinMain,IDC_COUNT,dwCount,FALSE
				ret
			.endif
			inc	ebx
			add	esi,4
		.endw
		ret

_RemoveClient	endp
;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
; 處理接收到的TCP包
;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
_RecvData	proc	_hSocket
		local	@dwRecv

		invoke	RtlZeroMemory,addr szReadBuffer,sizeof szReadBuffer
		invoke	recv,_hSocket,addr szReadBuffer,sizeof szReadBuffer,NULL
		.if	eax !=	SOCKET_ERROR
			mov	@dwRecv,eax
			invoke	wsprintf,addr szBuffer,addr szFormat,\
				_hSocket,addr szReadBuffer
;********************************************************************
; 按照客戶端列表逐一發送
;********************************************************************
			invoke	GetDlgItem,hWinMain,IDC_INFO
			mov	ebx,eax
			invoke	GetWindowTextLength,ebx
			invoke	SendMessage,ebx,EM_SETSEL,eax,eax
			invoke	SendMessage,ebx,EM_REPLACESEL,FALSE,addr szBuffer
			mov	esi,offset stTable
			xor	ebx,ebx
			.while	ebx <	MAX_SOCKET
				mov	edi,[esi]
				.if	edi
					invoke	lstrlen,addr szBuffer
					invoke	send,edi,addr szBuffer,eax,0
				.endif
				add	esi,4
				inc	ebx
			.endw
		.endif
		ret

_RecvData	endp
;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
; 初始化 Socket,綁定到服務TCP端口并監聽
;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
_Init		proc
		local	@stWsa:WSADATA
		local	@stSin:sockaddr_in

		invoke	WSAStartup,101h,addr @stWsa
		invoke	socket,AF_INET,SOCK_STREAM,0
		mov	hSocket,eax
		invoke	WSAAsyncSelect,hSocket,hWinMain,WM_SOCKET,FD_ACCEPT

		invoke	RtlZeroMemory,addr @stSin,sizeof @stSin
		invoke	htons,TCP_PORT
		mov	@stSin.sin_port,ax
		mov	@stSin.sin_family,AF_INET
		mov	@stSin.sin_addr,INADDR_ANY
		invoke	bind,hSocket,addr @stSin,sizeof @stSin
		.if	eax ==	SOCKET_ERROR
			invoke	MessageBox,hWinMain,addr szErrBind,NULL,\
				MB_OK or MB_ICONWARNING
			invoke	SendMessage,hWinMain,WM_CLOSE,0,0
		.else
			invoke	listen,hSocket,5
		.endif
		ret

_Init		endp
;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
; 主窗口程序
;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
_ProcDlgMain	proc	uses ebx edi esi hWnd,wMsg,wParam,lParam

		mov	eax,wMsg
		.if	eax ==	WM_SOCKET
			mov	eax,lParam
			.if	ax ==	FD_ACCEPT
				invoke	accept,wParam,0,0
				invoke	_AddClient,eax
			.elseif	ax ==	FD_READ
				invoke	_RecvData,wParam
			.elseif	ax ==	FD_CLOSE
				invoke	_RemoveClient,wParam
			.endif
;********************************************************************
; 退出時關閉全部連接
;********************************************************************
		.elseif	eax ==	WM_CLOSE
			invoke	closesocket,hSocket
			xor	ebx,ebx
			mov	esi,offset stTable
			cld
			.while	ebx <	MAX_SOCKET
				lodsd
				.if	eax
					invoke	closesocket,eax
				.endif
				inc	ebx
			.endw
			invoke	WSACleanup
			invoke	EndDialog,hWinMain,NULL
;********************************************************************
		.elseif	eax ==	WM_INITDIALOG
			push	hWnd
			pop	hWinMain
			call	_Init
;********************************************************************
		.else
			mov	eax,FALSE
			ret
		.endif
		mov	eax,TRUE
		ret

_ProcDlgMain	endp
;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
; 程序開始
;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
start:
		invoke	GetModuleHandle,NULL
		invoke	DialogBoxParam,eax,DLG_MAIN,NULL,offset _ProcDlgMain,0
		invoke	ExitProcess,NULL
;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
		end	start

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
一本色道久久加勒比精品| 亚洲第一二三四区| 成人精品国产福利| 中文一区在线播放| 不卡的电视剧免费网站有什么| 久久精品视频在线看| 国产一区二区三区免费播放| 久久久亚洲欧洲日产国码αv| 精品一区二区久久| 中文乱码免费一区二区| 成人精品国产免费网站| 亚洲在线视频免费观看| 9191久久久久久久久久久| 男女性色大片免费观看一区二区 | 国产精品国产三级国产a| 成人小视频免费在线观看| 综合中文字幕亚洲| 欧美久久久一区| 精品一二线国产| 亚洲欧美综合在线精品| 欧美色成人综合| 精品一区二区三区久久久| 国产精品日日摸夜夜摸av| 欧美性大战xxxxx久久久| 美日韩黄色大片| 中文字幕亚洲精品在线观看| 欧美午夜精品一区二区蜜桃| 久久不见久久见免费视频7| 中文字幕精品一区二区三区精品| 日本精品视频一区二区三区| 青青草97国产精品免费观看| 国产精品伦一区| 91精品国产色综合久久久蜜香臀| 国产黄色精品视频| 亚洲一区二区av在线| 久久久久综合网| 欧美色大人视频| 成人av在线影院| 美国十次了思思久久精品导航| 国产精品久久久久精k8 | 欧美成人高清电影在线| 波多野结衣亚洲| 日本中文字幕一区| 亚洲欧美影音先锋| 日韩欧美亚洲国产另类| 99r精品视频| 国产福利一区二区三区在线视频| 亚洲国产人成综合网站| 国产欧美一区二区在线| 这里只有精品视频在线观看| 波多野结衣中文字幕一区二区三区| 午夜精品免费在线观看| 中文字幕一区二区在线观看| 欧美草草影院在线视频| 欧美日韩综合色| 95精品视频在线| 国产九色sp调教91| 美女性感视频久久| 午夜精品一区在线观看| 亚洲欧美成人一区二区三区| 久久女同精品一区二区| 日韩一区二区三区精品视频| 欧美性极品少妇| 91黄色免费网站| 色播五月激情综合网| eeuss鲁一区二区三区| 国产激情精品久久久第一区二区| 日产国产高清一区二区三区| 亚洲高清中文字幕| 亚洲第一综合色| 亚洲大片一区二区三区| 一区二区欧美视频| 亚洲精品国产精华液| 中文字幕一区二区视频| 国产精品美女久久久久久久久| ww亚洲ww在线观看国产| 精品国精品国产尤物美女| 日韩亚洲欧美成人一区| 欧美精品久久99久久在免费线 | 日韩免费性生活视频播放| 欧美视频在线一区二区三区 | 欧美精品日韩精品| 欧美视频一区在线| 精品视频在线免费| 精品视频123区在线观看| 欧美日韩在线三级| 欧美精品九九99久久| 欧美一卡二卡在线观看| 欧美一级精品在线| 精品成人佐山爱一区二区| 久久久久国产成人精品亚洲午夜| 久久久国产精品麻豆 | 怡红院av一区二区三区| 一个色妞综合视频在线观看| 亚洲在线观看免费视频| 日韩精品福利网| 国产在线精品国自产拍免费| 国产福利电影一区二区三区| 国产91精品露脸国语对白| 成人性视频网站| 色妞www精品视频| 91精品欧美久久久久久动漫| 欧美成人伊人久久综合网| 久久先锋资源网| 国产精品久久久久精k8| 亚洲成人自拍一区| 韩国三级在线一区| 99久久免费精品| 欧美人xxxx| 久久久久88色偷偷免费| 一区二区三区蜜桃| 日本欧美韩国一区三区| 国产精品一二三在| 日本高清不卡aⅴ免费网站| 欧美精品粉嫩高潮一区二区| 久久久久久久免费视频了| 亚洲毛片av在线| 全国精品久久少妇| 成人性生交大片免费看中文 | 日韩一区二区在线播放| 久久久久久久久岛国免费| 一区二区三区免费看视频| 久久av老司机精品网站导航| www.激情成人| 日韩欧美亚洲国产另类| 中文字幕视频一区| 日韩av中文在线观看| 成人18视频日本| 日韩色在线观看| 亚洲精品大片www| 国产大片一区二区| 欧美日本高清视频在线观看| 国产三级精品三级| 日韩国产欧美一区二区三区| 成人天堂资源www在线| 欧美一区二区视频在线观看 | 一区二区三区四区在线| 老司机精品视频线观看86| 色综合久久久久综合体桃花网| 日韩一区二区在线观看| 一区二区三区四区在线播放| 国产成人av自拍| 91麻豆精品国产自产在线观看一区| 国产精品久久午夜夜伦鲁鲁| 蜜桃av一区二区| 在线观看日韩电影| 中文字幕精品一区| 国产黄人亚洲片| 日韩女优电影在线观看| 午夜私人影院久久久久| 92精品国产成人观看免费| 国产日韩av一区| 精品在线亚洲视频| 欧美一区二区美女| 亚洲国产成人va在线观看天堂| av影院午夜一区| 欧美精彩视频一区二区三区| 激情深爱一区二区| 日韩综合在线视频| 蜜臀av性久久久久蜜臀aⅴ | 午夜欧美电影在线观看| 337p亚洲精品色噜噜狠狠| 国产精品灌醉下药二区| www.日韩在线| 亚洲曰韩产成在线| 日韩女优av电影| 国产成人午夜精品5599| 国产精品国产精品国产专区不片| 粉嫩一区二区三区在线看| 99在线视频精品| 欧美一区二区三区在线观看视频| 亚洲图片欧美视频| 在线亚洲欧美专区二区| 亚洲国产精品一区二区www在线| 97久久精品人人做人人爽| 1区2区3区精品视频| 91在线小视频| 国产精品污污网站在线观看| 成人精品国产免费网站| 亚洲天堂中文字幕| 一本大道久久a久久综合| 一区二区在线免费| 欧美日韩亚洲综合在线| 日韩精品乱码免费| 精品日本一线二线三线不卡| 久久av资源站| 久久精品欧美日韩| 99免费精品在线| 亚洲国产精品精华液网站| 欧美一区二区性放荡片| 国产精品一区二区果冻传媒| 国产精品久久久久一区二区三区| 97精品久久久午夜一区二区三区 | 国产精品亲子伦对白| 成人性色生活片免费看爆迷你毛片| 国产精品视频看| 欧美又粗又大又爽| 秋霞电影网一区二区| 久久久久久97三级| 欧美亚洲综合在线|