2012-12-10 39 views
0

我正在寫在linux上的C++網絡服務器原型。我已經獲得套接字文件描述符,將其綁定到端口6666上的127.0.0.1,標記了帶有listen和called accept的套接字。程序運行,直到接受沒有eny錯誤,然後等待。基本的Linux C++網絡:連接被拒絕,但是沒有提出錯誤

nestat --all中仍然沒有關於我的套接字的記錄。

我試過命令telnet 127.0.0.1 6666並得到connection refused,但我的服務器仍在運行。

我不認爲它是由防火牆造成的,因爲在互聯網上找到的例子起作用。我認爲在錯誤handeling中可能會出現一些錯誤,我對C++還不是很熟悉。

這是我的source code on pastebin

謝謝你的時間和精力! :)

回答

3
  1. 請注意,您的incoming_addr被聲明爲指針,因此你sizeof將返回指針的大小。試用sizeof(struct sockaddr_storage)

  2. getAddress應該收到const char *address而不是const char address。你真的想傳遞整個地址,而不是隻傳遞第一個字符。這還要求您從中的address中刪除&,並將該函數調用爲getAddress(addr, SERVER_PORT)

+0

非常感謝!指針就是那些錯誤! :)。它現在按預期工作。 – Filip