masm32 で「ソケット」を作成しようとしていますが、accept() に何か問題があります。ollydbg は、コードが accept() を実行しようとするとアクセス違反を表示し、何が問題なのかわかりません。誰か教えてください。どうすれば修正できますか?
.686
.model flat, stdcall
option casemap:none
extrn ExitProcess@4:PROC
extrn WSAStartup@8:PROC
extrn socket@12:PROC
extrn bind@12:PROC
extrn listen@8:PROC
extrn accept@12:PROC
WSADATA STRUCT 8
wVersion WORD ?
wHighVersion WORD ?
iMaxSocket WORD ?
iMaxUdpDg WORD ?
lpVendorInfo DWORD ?
szDescription SBYTE 257 dup (?)
szSystemStatus SBYTE 129 dup (?)
WSADATA ENDS
sockaddr STRUCT
sa_family WORD ?
sa_port WORD ?
sa_addr DWORD ?
BYTE 8 dup (?)
sockaddr ENDS
.const
address sockaddr<2, 0B922h, 00000000h>
sbuff BYTE 50 dup (0)
.data?
wsadata WSADATA <>
Socket DWORD ?
.code
Start proc
push ebp
mov ebp, esp
lea edx, wsadata
push edx
push 2h
call WSAStartup@8
push 0h
push 1h
push 2h
call socket@12
mov Socket, eax
push 16h
lea ecx, address
push ecx
push Socket
call bind@12
push 1h
push Socket
call listen@8
push 16h
lea ecx, address
push ecx
push Socket
call accept@12
mov eax, 0
call ExitProcess@4
mov esp, ebp
pop ebp
Start endp
END
よろしく