我有一个HTC One,我根。我将带有OTG电缆的usb-Ethernet适配器连接到我的手机并在其上设置IP地址(eth0 192.168.9.1/24)。 然后我用以太网电缆将它连接到我的笔记本电脑,并在我的笔记本电脑上设置该子网的IP地址(192.168.9.2/24)。我可以从两侧ping通(手机 - >笔记本电脑和笔记本电脑 - >手机) 然后我写一个android程序来听取端口(33333):
private class SocketServerThread extends Thread {
static final int SocketServerPORT = 33333;
int count = 0;
@Override
public void run() {
try{
serverSocket = new ServerSocket(SocketServerPORT,50,deviceAddress);
socket = serverSocket.accept();
}
}
}
private String getIpAddress() {
String ip = "";
try {
Enumeration<NetworkInterface> enumNetworkInterfaces = NetworkInterface.getNetworkInterfaces();
while (enumNetworkInterfaces.hasMoreElements()) {
NetworkInterface networkInterface = enumNetworkInterfaces.nextElement();
Enumeration<InetAddress> enumInetAddress = networkInterface.getInetAddresses();
while (enumInetAddress.hasMoreElements()) {
InetAddress inetAddress = enumInetAddress.nextElement();
if (inetAddress.isSiteLocalAddress()) {
ip += "SiteLocalAddress: "+ inetAddress.getHostAddress() + "\n";
try {
deviceAddress=inetAddress.getByName(inetAddress.getHostAddress());
// deviceAddrgroup=inetAddress.getAllByName(inetAddress.getHostAddress());
}catch (UnknownHostException e){
e.printStackTrace();
}
}
}
}
当我想从我的笔记本电脑连接到该端口(telnet 192.168.9.1 33333)到我的手机时,它是不可能的,telnet会等到超时。
我开始排除故障:
1 - 在手机上的终端仿真器上使用telnet 192.168.9.1 33333,我可以连接到该端口。
2 - 我用Wifi将手机连接到笔记本电脑,我可以毫无问题地连接到端口33333。
3 - 我想用Tcpdump捕获android eth0上的数据包。我在system / bin和system / xbin上复制Tcpdump。当我想在终端模拟器上执行tcpdump时,我有权限用餐错误! (我的手机是root,我在运行该命令之前使用&#34; su&#34;)
4 - 我在终端仿真器上使用netstat它显示协议tcp6(:: ffff:192.168.9.1) !!!!
我的问题:
1 - 在无法连接到Ethernet-usb适配器上的端口之前,任何机构都遇到此问题?
2 - 因为android上的协议是tcp6,是否可能导致问题?
3 - 任何身体知道手机上的tcpdump有root权限是什么问题?