6. 客户/服务器端背景知识

原文:https://beej.us/guide/bgnet/html/#client-server-background

 

6. 客户/服务器端背景知识

       这里是个客户--服务器的世界。在网络上的所有东西都是在处理客户进 程和服务器进程的交谈。举个telnet 的例子。当你用telnet (客户)通过23 号端口登陆到主机,主机上运行的一个程序(一般叫 telnetd,服务器)激活。 它处理这个连接,显示登陆界面,等等。

图2:客户机和服务器的关系

       图 2 说明了客户和服务器之间的信息交换。

       注意,客户--服务器之间可以使用SOCK_STREAM、SOCK_DGRAM或者其它(只要它们采用相同的)。一些很好的客户--服务器的例子有 telnet/telnetd、 ftp/ftpd 和 bootp/bootpd。每次你使用 ftp 的时候,在远端都有一个 ftpd 为你服务。

       一般,在服务端只有一个服务器,它采用 fork() 来处理多个客户的连接。基本的程序是:服务器等待一个连接,接受 (accept()) 连接,然后fork() 一个子进程处理它。这是下一节我们的例子中会讲到的。

6.1. 一个简单的服务器

       这个服务器所做的全部工作是在流式连接上发送字符串 "Hello, World!\n"。你要测试这个程序的话,可以在一台机器上运行该程序,然后在另外一机器上登陆:

   $ telnet remotehostname 2349

remotehostname 是该程序运行的机器的名字。

 

 

 

具体代码请看:网络编程client和server

 

 

 

6.2. 一个简单的客户端

       这个程序比服务器还简单。这个程序的所有工作是通过2349 端口连接到命令行中指定的主机,然后得到服务器发送的字符串。

 

具体代码请看:网络编程client和server

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值