Вызов Socket (), bind () и слушать () не работает на сборкеLinux

Anonymous
Вызов Socket (), bind () и слушать () не работает на сборке

Сообщение Anonymous »

Я пытаюсь сделать веб-сервер, используя сборку x86_64, и по какой-то причине сервер не будет связываться даже с помощью AM, передавая правильные аргументы < /p>
section .text
extern socket, bind, listen, accept, perror
global main

main:

; allocating sockaddr_in
sub rsp, SIZE_OF_SERVER_ADDR

; ; sin_family
mov word [rsp], AF_INET

; ; sin_port
mov word [rsp + 2], PORT

; ; s_addr
mov dword [rsp + 4], INADDR_ANY

; ; unsigned char data[8]
mov qword [rsp + 8], 0x0

mov rdi, AF_INET
mov rsi, SOCK_STREAM
mov rdx, 0
call socket

cmp rax, 0
jl exit_socket_error

; holding the socket_fd
mov r12, rax

mov rdi, r12
mov rsi, rsp
mov rdx, SIZE_OF_SERVER_ADDR
call bind

cmp rax, 0
jl exit_bind_error

mov rdi, r12
mov rsi, 10
call listen

cmp rax, 0
jl exit_error

call listening_msg

while:
mov rdi, r12
mov rsi, rsp
mov rdx, 4
call accept

cmp rax, 0
jl exit_error

call client_connect

jmp while

< /code>
Я уже пытался передавать аргументы на пользовательскую функцию, чтобы увидеть, не удастся ли, но не возвращает -1 ни в одной из функций. Но когда я сделаю запрос на сервер, я получаю < /p>
Failed to connect to localhost port 6000 after 0 ms: Couldn't connect to server


Подробнее здесь: https://stackoverflow.com/questions/794 ... n-assembly

Вернуться в «Linux»