2013-01-19 3 views
1

СледующиеOcaml ошибка LWT

let new_socket() = Lwt_unix.socket Unix.PF_INET Unix.SOCK_STREAM 0 in 
let socket_address = Network.make_address "127.0.0.1" 7777 in 
let listening_socket = new_socket() in 
Lwt_unix.setsockopt listening_socket Unix.SO_REUSEADDR true; 
Lwt_unix.bind listening_socket socket_address; 

результатов в этой ошибки:

Ошибка: правильность: 2: remote_client: 0: установить

Unix.Unix_error(Unix.EADDRINUSE, "bind", "") 
Raised at file "src/core/lwt.ml", line 782, characters 22-23 
Called from file "src/unix/lwt_main.ml", line 34, characters 8-18 
Called from file "src/oUnit.ml", line 597, characters 6-10` 

Последняя строка не может предоставить привязку, идеи, почему, как это передать?

ответ

3

Ошибка четко указана: адрес, который вы пытаетесь привязать к уже используется, сокет уже связан с портом 7777.

Чтобы понять кодексы Unix_error поднятых функции смотрите в руководство соответствующей функции C unix, в этом случае bind(2).

+0

Мне нужен этот порт, так что мне делать? – blackmath

+1

, если вам нужен порт, попробуйте выяснить, какой процесс его использует, и остановите его. Если вам нужно запустить этот процесс, вы можете попытаться изменить его настройки, чтобы использовать другой порт, поэтому освобождая порт для вашего собственного использования. Если вы не можете сделать выше, попробуйте найти другой компьютер для запуска вашей программы. – didierc

Смежные вопросы