一个Socket对象只能邦定一个端口,而且一个IP地址与端口的组合只能分配一次,第二次分配会出错,你可能用两块网卡来解决这个问题,也可以一个网卡配多个IP地址来实现(这个方法我没有试过,理论上可行)。使用Delphi的控件不太好做,直接使用BIND函数可代入IP地址,最好用VC++写.

解决方案 »

  1.   

    我现在用了2000呀。。
    可是我了测试时发现同一个端口1024时建立了两个socket在二个进程中执行连接。。
    可是好像不行
    有时候的数据可以发出去可是有时候,却发不出去我跟踪程序发现明明发送了对方却收不到而用一个却可以收到...
      

  2.   

    TO:ljhsoft(刘建华) 一个Socket对象只能邦定一个端口,而且一个IP地址与端口的组合只能分配一次,第二次分配会出错,??
    我现在是一个socket对应一个IP,不过是两个socket的端口都是1024,所以我想知道是不是当有两个socket同时用这一个端口进行与不同IP的机器通信时是不是会出现有时个数据无法收到或者发不出去??现在我的机器IP是192.168.0.9 ,另外的两台机器IP是192.168.0.4,192.168.0.5
    现在我建立了socket1连接192.168.0.4,建立socket2连接192.168.0.5连接成功后就进行通信。。我是用多线程来做的。。可是我了发现有时候我的数据明明发出去了可是对方却收不到。。
    所以我想是不是存在这种可能性,不同的socket应该用不同的端口??
      

  3.   

    TO: songhtao(三十年孤独) 
    编写并发客户??怎么做? 
      

  4.   

    你最好不要使用1023作为端口,这一部分端口是系统用的,你可以用telnet程序同时连接两台服务程序看看能否同时连接成功?如果能连接就一定行的,如果你的两个SOCKET没有报错就应该没有问题,仔细检查你是否邦定了正确的IP地址。
      

  5.   

    我不是用1023呀,是1024端口,现在是这样的,两个进程同时,连接了两个服务器也可以连接成功,但是还不是同一时间连接的还是有先有后,现在我的进程也没有终止一个完成了可是另一个却还在等,如果这时服务器向我这发数据还能收到,这时是只有一个socket,还有就是我试过用一个端口一个进程连接多个服务器可以,就是一次连一个,通信完了再建立socket连接另外的一个,但是二个同时存在时就不行了,有时通信的就有问题,要不就是收到对方发的信息,要不就是发的信息对方收不到
      

  6.   

    我也正在学习socket的问题,关注!!!