`

recv函数使用实例

阅读更多

recv函数使用实例

本节将讲解一个recv函数使用实例。在程序中,连接到北京大学的FTP服务器,然后用recv函数取得ftp服务器返回的信息。北京大学的FTP服务器域名如下所示。

ftp.pkp.edu.cn


在终端中输入下面的命令,取得这个域名的IP地址。

 ping ftp.pku.edu.cn

终端中显示的结果如下所示。

 PING vineyard.pku.edu.cn (202.38.97.197) 56(84) bytes of data.

所以北京大学FTP服务器的IP地址是202.38.97.197。FTP服务的端口号是21。程序的代码如下所示。

代码17-5  recv函数接收数据:\源文件\17\17.23.c

#include <stdio.h>
#include <netinet/in.h>
#include <arpa/inet.h>
#include <unistd.h>
#include <fcntl.h>
#include <sys/stat.h>
#include <sys/types.h>
#include <sys/socket.h>        /*包含头文件。*/
#define PORT 21          /*定义一个端口号。*/
#define REMOTE_IP "202.38.97.197"     /*定义一个IP地址。*/
int   main(int argc,char *argv[])
{   
int s ;           /*定义相关的变量。*/
struct sockaddr_in addr ;
char mybuffer[256];
   if( (s=socket(AF_INET,SOCK_STREAM,0))<0 )  /*建立一个socket。*/
{
perror("socket");
exit(1);
}
else
{
printf("socket created .\n");     /*socket建立成功。*/
printf("socked id: %d \n",s);
}
   bzero(&addr,sizeof(addr));      /*清空addr所占的内存。*/
addr.sin_family =AF_INET;      /*设置addr的成员。*/
addr.sin_port=htons(PORT);
addr.sin_addr.s_addr=inet_addr(REMOTE_IP);
   if(connect(s,&addr,sizeof(addr))<0)    /*连接远程服务器。*/
{
perror("connect");
exit(1);
}
else
{
    printf("connected ok!\n");     /*连接成功。*/
    printf("remote ip:%s\n",REMOTE_IP);
    printf("remote port:%d\n",PORT);
}
   recv(s ,mybuffer,sizeof(mybuffer),0);   /*接收信息。*/
printf("%s\n",mybuffer);       /*输出接收到的信息。*/
}

输入下面的命令,编译这个程序。

 gcc 17.23.c

输入下面的命令,对这个程序添加可执行权限。

chmod +x a.out

输入下面的命令,运行这个程序。

./a.out

程序的运行结果如下所示。结果表明程序已经正确连接到了北京大学的FTP服务器。服务器返回了一段欢迎信息。

socket created .
socked id: 3 
connected ok!
remote ip:202.38.97.197
remote port:21
220 Welcome to VINEYARD FTP service.
分享到:
评论

相关推荐

    python网络编程调用recv函数完整接收数据的三种方法

    ### Python网络编程调用recv函数完整接收数据的三种方法 在网络编程中,特别是TCP通信中,确保能够完整地接收来自远程主机的数据是非常重要的。Python的`socket`库提供了`recv()`函数来接收数据,但在实际应用中...

    winsock函数使用例子

    "winsock函数使用例子"文件可能是一个综合性的教程或示例代码,涵盖了上述各种函数的使用方法,帮助开发者更好地理解和实践Winsock编程。 总的来说,Winsock函数的使用涉及网络编程的基本流程,包括套接字的创建、...

    C++ Builder 5API函数开发实例

    本教程《C++ Builder 5 API函数开发实例》旨在通过实例教学,帮助开发者熟练掌握如何在C++ Builder 5环境中使用API函数。以下是一些可能涵盖的关键知识点: 1. **API函数的引入**:了解如何在C++ Builder项目中包含...

    linux c语言函数速查手册

    `socket`函数创建套接字,`bind`绑定IP地址和端口,`listen`等待连接,`accept`接收连接,`send`和`recv`发送和接收数据。 九、信号处理 `signal`函数用于设置信号处理器,`raise`发送信号给当前进程。 这个Linux ...

    Windows API开发详解 函数、接口、编程实例

    6. **网络编程**: 包含Socket接口,支持TCP/IP和其他网络协议,如socket、bind、listen、accept和send/recv函数。 7. **系统信息获取**: 获取系统配置、硬件信息,如GetVersion、GetSystemMetrics等函数。 8. **...

    精通windowsAPI函数接口编程实例源代码.rar

    6. **Winsock**:为Windows上的网络编程提供支持,如socket创建、bind、listen、accept和send/recv函数等。 7. **DirectX**:对于游戏开发和高性能图形处理,Windows API还包括DirectX接口,如Direct3D用于3D图形...

    非阻塞recvfrom的设置

    在我们的例子中,我们可以使用以下代码来设置非阻塞recvfrom: int iMode = 1; ioctlsocket(socketc, FIONBIO, (u_long FAR*) &iMode); 这样,我们就可以使用非阻塞的recvfrom函数来接收数据了。 关于recvfrom...

    CAN总线的实现-SJA1000实例

    CAN总线的实现-SJA1000实例 CAN总线是汽车工业中广泛...使用SJA1000实现CAN功能需要对其进行初始化、设置时钟分频、设置验收滤波器、设置波特率等步骤,然后可以使用BCAN_RECV函数接收数据和BCAN_SEND函数发送数据。

    Windows API 开发详解——函数、接口、编程实例

    网络通信方面,Windows API提供了`WSAStartup`、`socket`、`bind`、`listen`、`accept`、`send`和`recv`等函数,用于实现基于TCP/IP的网络应用。这些函数涵盖了网络连接的建立、数据传输等基本步骤。 此外,Windows...

    APIHook.rar_Detours hook recv_WindowsAPICodePack.d_apihook.r_de

    这个压缩包文件"APIHook.rar_Detours hook recv_WindowsAPICodePack.d_apihook.r_de"包含了一个使用Detours库来实现API Hook的例子,特别是针对Windows系统中的`recv`函数。下面我们将深入探讨API Hook、Detours库...

    c++源码讲述132个WinAPI函数和206个完整实例

    《C++源码讲述132个WinAPI函数和206个完整实例》是一部深入探讨C++编程中如何利用Windows API实现系统级功能的著作。本书的核心在于通过丰富的实例来解析WinAPI函数的用法,帮助开发者更好地理解和掌握Windows操作...

    windows api 函数使用手册

    《Windows API 函数使用手册》是一份详尽的参考资料,主要针对那些...手册通常会包含实例代码,帮助开发者更好地理解和应用这些函数,提高开发效率。对于初学者和经验丰富的开发者来说,这都是一份不可或缺的参考资源。

    Linux函数详解(函数大全)

    本文将基于"Linux函数详解(函数大全)"这一主题,深入解析Linux C函数的使用和重要性,涵盖从基本输入输出到文件操作,再到进程控制等多个方面。 首先,我们从最基础的输入输出函数开始,如`printf`和`scanf`,...

    《VB API函数大全》

    3. **网络通信**:VB API允许开发网络应用程序,如使用`WSAStartup`、`socket`和`send`、`recv`函数进行TCP/IP通信。 4. **内存管理**:通过API函数,如`GlobalAlloc`、`LocalAlloc`、`GlobalLock`和`GlobalUnlock`...

    udp传输实例含(udp_recv.c,udp_send.c)

    在这个实例中,我们有两个C语言编写的源代码文件——`udp_recv.c` 和 `udp_send.c`,它们分别实现了UDP数据的发送和接收功能。 在`udp_recv.c` 文件中,我们将看到如何使用UDP套接字API来创建一个监听套接字,等待...

    linux c函数速查手册

    10. **网络编程**:`socket`、`bind`、`listen`、`accept`、`connect`、`send`、`recv`等函数用于实现客户端-服务器通信,构建网络应用。 在学习和使用这个速查手册时,开发者可以依据自己的需求快速查找相关函数,...

    vb api 函数大全

    这个例子声明了`GetTickCount`函数,它来自`kernel32.dll`库,返回一个长整型值。 2. **函数参数**:API函数可能有多个参数,每个参数都有特定的数据类型。在VB中,我们需要根据API文档或头文件准确地定义这些参数...

    LinuxC函数库中文手册

    《Linux C函数库中文手册》是一本针对Linux操作系统下C语言编程的重要参考资料,它详尽地阐述了在Linux环境中常用C函数的用法,并且配备了丰富的实例,便于读者理解和掌握。这本书采用CHM(Microsoft Compiled ...

    精通WindowsAPI函数接口编程实例

    Windows API提供了一些网络相关的函数,如`socket`创建套接字,`bind`绑定本地地址,`connect`连接远程服务器,`send`和`recv`发送和接收数据。 14. **调试和性能优化** 学习使用`OutputDebugString`进行调试输出...

    精通windowsAPI函数接口编程实例-src

    《精通windowsAPI函数接口编程实例》这本书通过实例详细讲解了这一主题,而"src"文件夹中的源码则是对书中理论知识的具体实现。 1. **Windows API基本概念** Windows API是Windows操作系统提供的一系列函数和数据...

Global site tag (gtag.js) - Google Analytics