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
分享到:
相关推荐
Beej’s Guide to Network Programming
C程序员套接字编程指南。 它提供了同时支持IPv6和IPv4的简单客户端和服务器的完整示例。
### Beej's Guide to Network Programming Using Internet Sockets #### 知识点一:网络编程基础概念 - **网络编程**:是指开发能够通过网络(如互联网)与其他计算机进行通信的应用程序的技术。 - **互联网套接字...
### Beej's Guide to Network Programming – 使用互联网套接字 #### 一、介绍与受众定位 **《Beej's Guide to Network Programming》**是一部由Brian "Beej" Hall编写的经典网络编程指南,专注于互联网套接字的...
网络编程经典书,学C++的必看,英文原版
《Beej Guide to Network Programming》是一本深受Linux网络编程初学者欢迎的书籍,它以其易懂的语言和实用的示例深入浅出地介绍了网络编程的基础知识。这本书的中文完整版,"Beej Guide to Network Programming简体...
### Beej's Guide to Network Programming – 简体中文版 #### 1. 前言 本指南旨在为那些在网络编程方面遇到挑战的程序员提供一份实用且易于理解的资源。如果你正在寻找一种简单的方式去理解和掌握网络编程的核心...
### 网络编程书籍《Beej’s Guide to Network Programming》知识点解析 #### 一、书籍简介 《Beej’s Guide to Network Programming Using Internet Sockets》是一本由Brian "Beej" Hall编写的关于网络编程的经典...
标题《Beej's Guide to Network Programming.pdf》和描述《网络编程》揭示了本文档所涉及的主要领域为网络编程。网络编程是计算机程序或软件组件之间通过网络进行通信和数据交换的过程。网络编程的核心在于使用套接...
标题《Beej Guide for Network Programming》和描述中提及的《Beej's Guide to Network Programming Using Internet Sockets》表明,该文档是一份详细且易于理解的网络编程指南,尤其专注于使用C语言和Socket进行...
### Beej's Guide to Network Programming Using Internet Sockets #### 知识点概览 - **网络编程基础**:包括socket的概念及其在Linux环境下的应用。 - **数据结构与处理**:涉及网络编程中的数据结构(如`struct ...