网络有关的小问题

zhangyanli 2008-03-28 06:01:56
下面是一个网络端口监视工具的到处列表:

PID 协议 本机IP 本机端口 远端IP 远端端口 状态 进程
--------------------------------------------------------------------------------------------------------------------------------------------

4 UDP 196.168.131.8 138 PID = 4
4 UDP 196.168.131.8 137 PID = 4
4 TCP 196.168.131.8 139 0.0.0.0 18523 侦听 PID = 4
456 UDP 0.0.0.0 2425 D:\迅雷下载\飞鸽传书2007绿色版下载\IPMSG2007.exe
456 TCP 0.0.0.0 2425 0.0.0.0 39111 侦听 D:\迅雷下载\飞鸽传书2007绿色版下载\IPMSG2007.exe
572 TCP 219.148.133.84 5504 209.85.133.102 443 等待关闭 C:\Program Files\Google\Google Pinyin\GooglePinyinDaemon.exe
736 UDP 127.0.0.1 3251 C:\WINDOWS\Explorer.EXE
1516 UDP 127.0.0.1 5585 C:\Program Files\Internet Explorer\IEXPLORE.EXE
1668 UDP 127.0.0.1 3255 C:\WINDOWS\system32\wdfmgr.exe
1748 UDP 0.0.0.0 1082 C:\WINDOWS\system32\svchost.exe
1748 UDP 0.0.0.0 1028 C:\WINDOWS\system32\svchost.exe
1748 UDP 0.0.0.0 1026 C:\WINDOWS\system32\svchost.exe
3412 UDP 127.0.0.1 5599 C:\Program Files\Internet Explorer\iexplore.exe
3412 UDP 0.0.0.0 5602 C:\Program Files\Internet Explorer\iexplore.exe
4928 UDP 0.0.0.0 5354 C:\Program Files\StormII\stormliv.exe
4928 UDP 0.0.0.0 4643 C:\Program Files\StormII\stormliv.exe

1.首先有的进程显示本地的ip地址是127.0.0.1,有的是0.0.0.0,而有的则是196.168.131.8,有的是219.148.133.84 请问他们为什么会有不同,他们各自分别用在什么时候?他们是由谁决定的?而目标地址也是0.0.0.0又是怎么回事?关键是0.0.0.0不好理解。

2.有的显示TCP和udp在同一个端口上监听,不是在一个端口上只能监听一个进程吗?

3.而建立连接,监听和等待关闭分别具体指什么样一个状态?
...全文
134 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
zhangyanli 2008-03-31
  • 打赏
  • 举报
回复
谢谢你了,呵呵
westhod 2008-03-30
  • 打赏
  • 举报
回复
关于第二个问题,我来说一句,tcp和udp共用一个端口是不冲突的,而且即使是同一个协议,也可以绑定同一个端口,可以看setsockopt()函数,
level参数填SO_REUSEADDR,可以重复绑定。
zhangyanli 2008-03-30
  • 打赏
  • 举报
回复
我是楼主:
1.目标地址0.0.0.0表示所有目标地址都可以通过某个本地地址进行路由。这句话不理解,能不能说的详细一点呢?

2.回环ip地址是用来“连接自己”的对吗?像explorer.exe iexporer.exe这样的进程为什么也会用到网络?他们中的有些操作回连到网络,想不明白。

3.192.168适用于局域网通信的对吗?看上面的前三行都是统一进程 PID=4可是有的用TCP,有的用UDP,而且端口号也不一致,我这么认为,用TCP还是UDP是由程序决定的,而用的端口是由系统决定的对吗?

4.一台电脑会有多个IP地址,是想这样的219.148.133.84互联网地址对吗?为什么要这么多呢?而且是一块网卡多个ip?

5.绑定地址时指定IP地址为0.0.0.0则可以接收到发给本地任意一个IP的数据,意思就是只要是发给本地的指定监听端口的数据本程序都要处理是吗?
lyserver 2008-03-30
  • 打赏
  • 举报
回复
再补充一下,在所有TCP和UDP通信中均有路由概念(即使你并未使用路由器,但在操作系统里还是提供了一个路由表,我所说的目标地址为0.0.0.0表示所有地址都可以通过网关地址与远端地址进行连接),大概就象古时的驿站吧,如果身份不符是通不过的.
其次,回环ip地址是用来网卡测试用的,所以只要装上网卡,即使不插上网线,该地址仍然存在,并可以Ping通.该地址是不能用于互连的.
至少192.168.*.*地址一般都用在局域网上(当然也可用于独立的广域网),但不由互联网供应商分配.
最后,你的219.148.133.84才是你的互联网供应商通过DHCP服务器动态分配的.有的互联网供应商还会基于其它协议分配一个地址,如我们这儿的网通公司.
总的来说,在编写SOCKET程序时,0.0.0.0表示任意地址,它会根据需要转换成具体的IP,此外你的机器上显示的0.0.0.0有一些是路由表信息,127.0.0.1是网卡测试地址,(我叫它本地地址),随着网卡的安装而产生,192.168.*.*和219.148.*.*才是你的网卡中可进行远端连接的互联地址.如果要进行远端通讯,必须使用互联地址,如果仅用于本地测试(如编写和调试SOCKET程序),有本地地址就可以了.
cnzdgs 2008-03-28
  • 打赏
  • 举报
回复
1、一台电脑会有多个IP地址,0.0.0.0表示本地的所有IP地址。绑定地址时指定IP地址为0.0.0.0则可以接收到发给本地任意一个IP的数据,否则只能接收到发给指定IP的数据。
2、每个端口可以绑定一个TCP和一个UDP,但两个TCP或者两个UDP不能绑定同一端口。
3、建立连接是甲方listen固定端口,乙方向这个端口发出connect的请求,甲方accept;监听就是从一个端口接收信息,主要是指TCP的listen;等待关闭是本地向已建立连接的另一端发出关闭信号,等待对方回应。
lyserver 2008-03-28
  • 打赏
  • 举报
回复
1、127.0.0.1:本机回环地址。192.168.131.8:192.168网段经常用于局域网,219.148.133.84互联网地址。目标地址0.0.0.0表示所有目标地址都可以通过某个本地地址进行路由。
2、当多个进程使用TCP协议时,的确不能使用同一个端口,但UDP好像没限制,或者是地址未绑定或绑定未成功。
3、监听、关闭状态是TCP通信协议的基础。一般是先用一个套接字监听,然后另一个套接字与远程套接字进立连接,连接成功后,两端都可发送关闭消息(主动和超时),当对方接收到后可选择是否关闭该条连接。

18,356

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 网络编程
c++c语言开发语言 技术论坛(原bbs)
社区管理员
  • 网络编程
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧