2011-05-01 73 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