Пожалуйста, обратите внимание, что пользователь заблокирован
Пишу на fasm простенький tcp клиент и возникает проблема на вызове функции connect
Код ошибки LastError после вызова connect = 00002741 (WSAEADDRNOTAVAIL)
LastStatus = C0000207 (STATUS_INVALID_ADDRESS_COMPONENT)
вот сам код
Код ошибки LastError после вызова connect = 00002741 (WSAEADDRNOTAVAIL)
LastStatus = C0000207 (STATUS_INVALID_ADDRESS_COMPONENT)
вот сам код
Код:
format PE GUI 4.0
use32
entry start
include 'C:\Users\Adr\Desktop\fasm\INCLUDE\WIN32A.INC'
section '.text' code readable executable
start:
push wsadata
push 0x0202
call [WSAStartup]
cmp eax, 0
jz get_ip_by_name
get_ip_by_name:
;push name
;call [gethostbyname]
;mov eax, [eax+12]
;mov eax, [eax]
;mov eax, [eax]
;mov [IP], eax
mov eax, dword [tsttt]
mov [sin2.sin_addr.s_un.s_addr], eax
mov [sin2.sin_port], 2222d
mov [sin2.sin_family], 2
init_socket:
push 0
push 1
push 2
call [socket]
mov [s1], eax
cmp eax, not 0
jnz noerr1
jmp close
noerr1:
push mt2-mt1
push sin2
push [s1]
call [connect]
cmp eax, 0
jz noerr2
noerr2:
push 0
push 100
push buf
push [s1]
call [recv]
noerr3:
push 6
push txt
push [s1]
call [send]
close:
push [s1]
call [closesocket]
exit:
push 0
call [ExitProcess]
section '.data' data readable writeable
;===========================================================
wsadata WSADATA
struct S_UN_B
s_b1 db 0
s_b2 db 0
s_b3 db 0
s_b4 db 0
ends
struct S_UN_W
s_w1 dw 0
s_w2 dw 0
ends
struct ADDRESS_UNION
s_u_b S_UN_B <>
s_u_w S_UN_W <>
s_addr dd 0
ends
struct in_addr
s_un ADDRESS_UNION <>
ends
struct socaddr_in
sin_family dw 0
sin_port dw 0
sin_addr in_addr <>
sin_zero db 8 dup (0)
ends
mt1:
sin2 socaddr_in <0>
mt2:
s1 dd 0
;===========================================================
IP dd 0
name db '', 0
tsttt db 127,0,0,1
buf db 100 dup (0)
txt db 'hello', 0, 0
section '.idata' import data readable
library kernel32, 'kernel32.dll', ws2_32, 'ws2_32.dll'
import ws2_32, WSAStartup, 'WSAStartup',\
gethostbyname, 'gethostbyname',\
socket, 'socket',\
connect, 'connect',\
recv, 'recv',\
send, 'send',\
closesocket, 'closesocket'
import kernel32, sleep, 'Sleep', ExitProcess, 'ExitProcess'