一》一个socket只能用于收或者发吗?
      一个socket既可以收也可以发,一般分别用收线程和发线程处理收发事件

二》两个android模拟器之间可以进行UDP通信吗?

        同一台电脑上的两个android模拟器之间不可以进行UDP通信

       分别位于两台电脑上的两个模拟器之间可以进行UDP通信

一台电脑的模拟器可以和C,Java编写的Socket端进行通信,无论这两个socket是否在同一台电脑上

三》模拟器进行UDP通信的地址配置问题(UDP通信可以发送出去数据,但是接收不到数据的原因,大多是因为地址没用重定向好)

首先,在程序运行之前打开模拟器,

       然后进入电脑终端,Linux下的console,win下点击运行——》CMD即可,然后依次键入如下命令行

脑 没有装好这个软件,win7的一般有这个问题,xp没有这个问题,解决方案:问度娘

redir add <protocol>:<host-post>:<guest-port>   ;模拟器自身有个IP地址,并且会自动将自身的IP地址重定向到本机地址,也就是说,程序运行之后,模拟器自动搭起了由模拟器-->本机电脑,这样一条数据流通路,所以,数据可以通过这条通路从本机电脑上发送出去;而接收数据时,我们需要这样一条通路:本机电脑--》模拟器,这条通路需要我们自己通过重定向获得,否则,数据发送到本机电脑上后,由于没有到模拟器的数据流通路,数据到不了模拟器。这条命令的意思是:在protocal协议下,将本机电脑的端口port重定向到我们模拟器的port上,这样,就建立起了本机电脑--》模拟器的数据通路,从而,数据可以先发到本机电脑,然后到达模拟器

比如:redir add udp:5000:5000    表示使用UDP协议,将本机电脑上的端口5000重定向到模拟器端口5000.这样就可以接收到数据了

       最后,运行程序

PS:一定要注意两个socket之间发送和接收端口的对应关系