回送地址

回送地址_4分词条

回送地址(127.x.x.x)-----本机回送地址(LoopbackAddress),即主机IP堆栈内部的IP地址,主要用于网络软件测试以及本地机进程间通信,无论什么程序,一旦使用回送地址发送数据,协议软件立即返回之,从进行任何网络传输。

目录 [隐藏]

回送地址 介绍

       

一、我们可以Ping回送地址。通常如果回送地址Ping不同,就说明IP堆栈出了故障。如果不通的话,表明网络出了问题。
例如:我们在命令行运行ping127.0.0.1,以检查主机的TCP/IP协议是否安装并正常工作,如下:
c:\>ping127.0.0.1
Pinging127.0.0.1with32bytesofdata:
Replyfrom127.0.0.1:bytes=32time
二、主要用于网络软件测试以及本地机进程间通信,无论什么程序,一旦使用回送地址发送数据,例如我们可以IP地址127.0.0.1和端口4001作为参数执行程序。127.0.0.1是一个回送地址,被分配给回送接口。回送接口是一个仅能被本地主机上运行的程序所访问的逻辑接口。实际上大部分系统都将localhost作为127.0.0.1的别名。

回送地址 测试实例

       

TCP服务器(server1.c)
1/*
2*server1.c
3*
4*CreateTCPserversocket,accept

回送地址 回送或回送响应消息internet控制信息协议

5*oneTCPclientconnectionusing
6*socket(),bind(),listen()and
7*accept().
8*
9*foster
10*/
11
12#include
13#include
14#include
15#include
16
17int
18main(intargc,char*argv[])
19{
20structsockaddr_insin;
21structsockaddr_incsin;
22socklen_tlen=sizeof(structsockaddr);
23shortport=0;
24intcsock=0;
25intsock=0;
26intret=0;
27
28if(argc!=2)
29{
30printf("usage:%s:port\n",argv[0]);
31return(1);
32}
33
34port=atoi(argv[1]);
35
36sock=socket(AF_INET,SOCK_STREAM,0);
37if(sock<0)
38{
39printf("TCPserversocket()failed.\n");
40return(1);
41}
42
43memset(&sin,0x0,sizeof(structsockaddr_in*));
44
45sin.sin_family=AF_INET;
46sin.sin_port=htons(port);
47sin.sin_addr.s_addr=INADDR_ANY;
48
49ret=bind(sock,(structsockaddr*)&sin,
50(structsockaddr));
51if(ret<0)
52{
53printf("TCPserverbind()failed.\n");
54close(sock);
55return(1);
56}
57
58ret=listen(sock,5);
59if(ret<0)
60{
61printf("TCPserverlisten()failed.\n");
62close(sock);
63return(1);
64}
65
66printf("TCPserverlistening.\n");
67
68memset(&csin,0x0,sizeof(structsockaddr));
69
70csock=accept(sock,(structsockaddr*)&csin,&len);
71if(csock<0)
72{
73printf("TCPserveraccept()failed.\n");
74}
75else
76{
77printf("TCPserver:TCPclientconnection"\
78"onport%d.\n",port);
79close(csock);
80}
81
82close(sock);
83
84return(0);
85}
编译
(foster@syngress~/book)$gcc-oserver1server1.c
(foster@syngress~/book)$./server1
usage:./server1:port
执行
(foster@syngress~/book)$./server14001
TCPserverlistening.
server1.c是一个简单的TCP服务器程序,它只带有一个命令行参数表示端口号,服务器将在这个端口上监听远程客户端的连接。程序首先调用socket()函数分配一个套接字标识符,然后绑定到指定的端口并调用accept()函数进行监听,这个函数将等待客户端的连接。收到客户端的连接以后,与TCP客户端的连接以及服务器端套接字被关闭,程序终止。

回送地址 分析

       

第36行,程序调用socket()函数分配套接字标识符,将AF_INET作为域参数传递,表示该套接字使用IP协议;将SOCK_STREAM作为类参数传递,表示该套接字在传输层使用TCP协议进行通信;将0传递给作为协议参数传递,因为在分配TCP套接字的时候,通常不会用到这个参数。
第43行,初始化sockaddr_in结构,用来定义套接字将要绑定的本地端点。
第45行,本地端点的family域被指定为AF_INET,与第36行传给socket()函数的参数一致。
第46行,指定将要绑定的本地端口,端口号由命令行参数给出并作为字符数组(char*)传递进来。端口号通过atoi()函数被转换成4字节的整型数,然后再转换为网络字节顺序的2字节短整型数,最后赋值给sockaddr_in结构的sin_port成员。
第47行,指定要绑定的本地IP地址。这里用到了无符号整型常量INADDR_ANY,这个值表示套接字将会绑定到所有可用的网络接口,包括回送接口(loopbackinterface)。与INADDR_ANY相反,在主机有多个网络接口的情况下,如果用指定网络接口的IP地址代替INADDR_ANY,则可以将套接字绑定到其中的一个接口。
第49行,调用bind()函数指定本地端点的信息,包括本地IP地址、端口以及套接字描述符。
第58行,调用listen()函数,指定在拒绝新连接以前,可排除等待的TCP客户端连接请求的数目,并且指定套接字已经就绪,可以接收客户端的连接。程序从这里开始处理客户端的连接。
第70行,调用accept()函数接收TCP客户端的连接请求,accept()函数被调用时,将会等待(阻塞)客户端的连接。当收到一个新的TCP客户端请求以后,accept()函数将返回一个套接字描述符来代表这个新的连接。
第79行,关闭由accept()函数返回的合法套接字描述符。
第82行,关闭服务器端套接字,不再允许客户端的连接。
下面,我们首先执行程序server1,接着再执行程序client1。server1将分配一个套接字描述符,并绑定到命令行指定的端口,然后监听来自客户端的TCP连接。当执行client1时,将会在server1和client1两个程序之间建立一个TCP连接。最后,两个程序都将关闭连接并终止。

回送地址 TCP客户端与服务器的活动

       

1(foster@syngress~/book)$./server14001&
2./server14001&[1]31802
3
4(foster@syngress~/book)$./client1127.0.0.14001
5./client1127.0.0.14001
6
7TCPserver:TCPclientconnectiononport4001.
8
9TCPclientconnected.
10
11[1]Done./server14001
分析:
server1执行时指令绑定4001号TCP端口,并在该端口进行监听。在大部分操作系统上,1到1024号端口限制为仅供具有特定权限的程序使用,所以在这个示例里面使用了大于1024的端口。命令行末尾的&符号表示程序将作为后台进程运行,所以会立即返回到命令提示符以便执行client1程序。
第1行,TCSHshell打印出用户输入的命令。
第2行,TCSHshell打印server1后台进程的进程ID。
第4行,以IP地址127.0.0.1和端口4001作为参数执行程序client1。127.0.0.1是一个回送地址,被分配给回送接口。回送接口是一个仅能被本地主机上运行的程序所访问的逻辑接口。实际上大部分系统都将localhost作为127.0.0.1的别名。
第5行,TCSHshell打印用户输入的命令。
第7行,server1打印一条信息,表示它收到客户端的TCP连接,即client1发起的连接。
第9行,client1打印信息表明已经建立了到server1的连接。
上面演示了127.x.x.x在TCP和UDP套接字编程中的应用

回送地址 参考资料:

       

[1]http://www.chinadomain.com.cn/

附图

上传图片 

互动百科的词条(含所附图片)系由网友上传,如果涉嫌侵权,请与客服联系,我们将按照法律之相关规定及时进行处理。如需转载,请注明来源于www.hudong.com

被引用: 回送地址已被如下媒体引用 我来补充
开放分类: 我来补充
IP地址
IT
保留地址
本地回送地址
网络
计算机网络

讨论区

更多>>

编辑者

共1人协作

相关词条

DOS
OLLYDBG
溢出
CreateProcess
网络专业人士笔记
网络监听技术
第四层交换
asp
PF防火墙
EJB
更多

Copyright © 2005-2009 hudong.com Ltd. All Rights Reserved. 互动在线 版权所有