recv函数使用实例
本节将讲解一个recv函数使用实例。在程序中,连接到北京大学的FTP服务器,然后用recv函数取得ftp服务器返回的信息。北京大学的FTP服务器域名如下所示。
在终端中输入下面的命令,取得这个域名的IP地址。
终端中显示的结果如下所示。
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); /*输出接收到的信息。*/
}
|
输入下面的命令,编译这个程序。
输入下面的命令,对这个程序添加可执行权限。
输入下面的命令,运行这个程序。
程序的运行结果如下所示。结果表明程序已经正确连接到了北京大学的FTP服务器。服务器返回了一段欢迎信息。
socket created .
socked id: 3
connected ok!
remote ip:202.38.97.197
remote port:21
220 Welcome to VINEYARD FTP service.
|
分享到:
相关推荐
使用微软detours库编写的API拦截函数,本代码主要提供了拦截recv函数的例子,其他函数的拦截可以参考例子编写
udp传输实例含(udp_recv.c,udp_send.c),自己已验证可用
一个简单使用Detours库的例子。Hook系统API,send和recv函数。
通常下载调用libc::recv函数 所以我们的目标是通过简单的睡眠来节制 要使用此板条箱执行此操作:(以speedtest程序为例) 1-检查其手册页以查看该函数的输入/输出 2-使用此板条箱 run_with ( vec! ( "speedtest" ),...
对网络数据的拦截,其中列出send函数例子,把send的内容写入ob文件.
mpi简单的例子介绍,适合初学者熟悉mpi函数
8.2.4 使用函数inet_pton()和函数inet_ntop()的例子 223 8.3 套接字描述符判定函数issockettype() 223 8.3.1 进行文件描述符判定的函数issockettype() 224 8.3.2 main()函数 224 8.4 IP地址与域名之间的相互...
11.1 send和recv函数 11.1.1 send函数 11.1.2 recv函数 11.2 readv和writev函数 11.2.1 readv函数 11.2.2 writev函数 11.3 sendto和recvfrom函数 11.3.1 sendto函数 11.3.2 recvfrom()函数 11.3.3 ...
服务器端:listen一个线程,每accept一个客户端,新开一个线程,专门负责recv,一旦recv到信息,会发送给HWND相应消息,wParam和lParam包含相应信息,HWND在类的Create成员函数中指定。 客户端:一旦connect成功,则...
由于是arm架构,且不能使用官方提供的sdk,故申请了官方的ISAPI协议进行开发。本例程为socket连接,用send和recv函数进行发送接收,无论是长连接还是短连接都可以,例程还带有MD5算法 识别火焰或高温目标
然而不存在速度慢因为使用send的人就没有人指望发包调用速度会快过 解释下调用速度 API Send 从WS2_32.dll到mswsock.dll到NTdll.dll WIN7里全部调用汇编有6千多行 我们的发包已经把很多没必要的代码去掉了 直接调用R...
阻塞套接字是指执行此套接字的网络调用时,直到成功才返回,否则一直阻塞在此网络调用上,比如调用recv()函数读取网络缓冲区中的数据,如果没有数据到达,将一直挂在recv()这个函数调用上,直到读到一些数据,此...
答:函数模板的实例化是由编译程序在处理函数调用时自动完成的,而类模板的实例化 必须由程序员在程序中显式地指定。 16一般数据库若出现日志满了,会出现什么情况,是否还能使用? 答:只能执行查询等读操作,不能...
与开放消息传递接口 (MPI) 一起使用的一些常用函数的示例 需要 Open MPI 才能编译和运行 ( ) 示例函数: MPI_Abort MPI_Bcast MPI_Comm_Rank MPI_Isent 和 MPI_Irecv MPI_Send 和 MPI_Recv 编译: mpicc -o ...
利用同步模式进行串口通信,适用...例子简单实用,提供了open close recv send 函数, dlg.cpp中提供了调用方式,可供参考。本代码并非利用CSerialPort.cpp。 对话框上的两个按钮响应函数中,提供了各函数调用方式。
这样声明之后,相当于告诉C, 函数const void f(void)是在C++语言的文件中声明或者实现的,c程序可以使用这个C++中的函数了,从而实现C++和c的混合编程。 13、编写一个函数,作用是把一个char组成的字符串...
可是对于初学Socket的人来说都不太爱用Select写程序,他们只是习惯写诸如connect、accept、recv或recvfrom这样的阻塞程序(所谓阻塞方式block,顾名思义,就是进程或是线程执行到这些函数时必须等待某个事件的发生,...
03 高阶函数使用 04 函数闭包 05 函数闭包装饰器基本实现 06 函数闭包加上返回值 07 函数闭包加上参数 08 函数闭包补充:解压序列 09 函数闭包为函数加上认证功能 10 函数闭包模拟session 11 函数闭包装饰器运行流程...
第二部分(第7~12章),以FTP客户端实例为基础介绍了函数实例库,还介绍了客户端程序、服务器程序和DLL中间构件及它们的相应函数,并涵盖socket命令和选项及移植BSDSockets相关事项等;第三部分(第13~17章),...
第二部分(第7~12章),以FTP客户端实例为基础介绍了函数实例库,还介绍了客户端程序、服务器程序和DLL中间构件及它们的相应函数,并涵盖socket命令和选项及移植BSDSockets相关事项等;第三部分(第13~17章),...