今天和一个同事讨论起来,感觉有些含糊,希望大虾们澄清一下
socket 通讯,可以使用本机Ip作为目标发送连接请求并且接收连接么
例如
client端程序 用199端口
向hostname=localhost/127.0.0.1/192.168.1.1(本机)端口:200
发送连接请求
server端
在hostname=localhost/127.0.0.1/192.168.1.1(本机)端口:200
进行监听并且对199的请求作出相应并且进行连接无论什么方式也好了,只要是通过socket进行通讯,
能不能实现,我有些晕了本来我的分有5000多,但是怕扰乱论坛秩序,给那些急需回复的人找麻烦,只奉上66
以示对诸位大虾的祝福马屁拍到这份上,再不回可对不起我了

解决方案 »

  1.   

    可以,本机进程间还可以使用Socket进行通讯呢,有什么收不到的?
      

  2.   

    我记起了,为什么有这个印象,我写过一个基于udp的broadcast程序发现本机是不能接收的
      

  3.   

    原理呢,有人知道么,在unix或者linux下也一样么,这究竟是scoket(套接字)处理范围内的事情还是系统的
      

  4.   

    我原来用Java写过一个测试, 可以的! 我想都一样吧.
    但是送传数据却奇慢.
      

  5.   

    那是不是说和系统的处理方式有关,毕竟在本机传数据要比在网上传快的多
    如果系统管理虚拟端口(port)
    那么对于本机的访问,系统可能根本就不向传输层下面的互联网层进行访问,而是通过其他方式绕过来直接处理对么?
      

  6.   

    使用127.0.0.1没有问题
    如果用自己的IP地址,那么 2000和xp下要有网络连接,否则收不到!
      

  7.   

    我觉得发往本机的包是在互联网层处理的,因为系统要判断包的目的ip为本机ip,才能知道这个包是发往本机的,而判断ip肯定就是互联网层的工作了,这说明这个包是到了互联网层的。而这个包应该也不会发到物理网络上去,因为我做过试验,ping本机ip地址,不管这个ip设为127.0.0.1还是设为本机的真实ip,用sniffer都抓不到包,至少windows是这样