2011-05-01 71 views
1

上我想寫使用套接字在Unix系統中的基本的C客戶機/服務器程序。我從家用電腦登錄我學校的Unix服務器。我登錄兩次,一次模擬服務器,另一次模擬客戶端。我使用AF_INET還是AF_UNIX?我應該使用哪個IP地址,來自家用電腦還是我的學校?如果我使用我學校的IP地址,我怎麼知道它是什麼?我如何知道我應該使用哪個端口號?我的客戶端和服務器的端口號是否必須相同?編寫客戶在C /服務器程序Unix服務器

+0

當您的問題已解決(此問題似乎是),請嘗試通過單擊來標記最能幫助您接受的答案在該答案旁邊的清晰滴答聲上。它可以作爲任何未來有類似問題的人的指標。更多信息可以在http://stackoverflow.com/faq – forsvarir 2011-05-01 21:07:07

回答

2
  1. 通常情況下,您需要使用AF_INET - 之後您將能夠在多臺計算機之間進行通信。
  2. 使用127.0.0.1;這意味着「這臺電腦」。
  3. 組成一個端口號並將其用於兩者。通常你會選擇1024到65536之間的東西,排他性的。
+1

中找到。在這種情況下,「這臺計算機」就是學校裏的機器(即一切正在運行的機器)。 – 2011-05-01 06:02:53

+0

感謝您的幫助。我現在有工作代碼。 – 2011-05-01 17:48:19

0

由於程序在學校的計算機上運行,​​你應該使用的IP地址。
您可以使用命令/usr/sbin目錄/使用ifconfig -a找到它(它的INET地址)。但是,如果兩個登錄都在同一臺物理計算機上(例如在我的學校,情況並非如此),則可以使用127.0.0.1。
你可以使用任何你想要的端口號,但選擇高(如四位數字),因爲較低的有默認的一些服務。
客戶端和服務器的端口號不必是相同的,但你要記住,如果他們可能更容易。

+0

感謝您的幫助。我現在有工作代碼。 – 2011-05-01 17:49:03

0

了很多的例子見here。有一些東西,你必須明白:

  • TCP,UDP和它們之間的區別
  • 什麼是插座,套接字類型(數據流,數據報,連續分組)
  • 的Socket API的的 - BSD, POSIX,WinSock(如果您打算針對Windows進行編程)
+0

感謝您的幫助。我現在有工作代碼。 – 2011-05-01 17:49:27