Вызов 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
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

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