Android 在两部手机之间通过wifi热点共享数据?
我试图通过wifi热点共享数据我到处都在搜索,但找不到任何东西。所以有些人有任何想法,所以请分享。。 而且应该通过wifi热点,而不是直接通过wifi //服务器代码Android 在两部手机之间通过wifi热点共享数据?,android,Android,我试图通过wifi热点共享数据我到处都在搜索,但找不到任何东西。所以有些人有任何想法,所以请分享。。 而且应该通过wifi热点,而不是直接通过wifi //服务器代码 try { ServerSocket ss = new ServerSocket(400); tt.setText("Running"); while (true) {
try {
ServerSocket ss = new ServerSocket(400);
tt.setText("Running");
while (true)
{
Socket s = ss.accept();
FileInputStream fis = new FileInputStream("sdcard/DCIM/123.jpeg");
byte[] buffer = new byte[fis.available()];
fis.read(buffer);
ObjectOutputStream oos = new ObjectOutputStream(s.getOutputStream());
oos.writeObject(buffer);
oos.close();
s.close();
}
} catch (IOException e) {
Toast.makeText(MainActivity.this,""+e,Toast.LENGTH_LONG).show();
}
}
});
}
///客户端代码
try {
Socket s = new Socket(txtip.getText().toString(),Integer.parseInt(txtport.toString()));
ObjectInputStream oos = new ObjectInputStream(s.getInputStream());
byte[] buffer = (byte[]) oos.readObject();
FileOutputStream fos = new FileOutputStream("/storage/123.jpeg");
fos.write(buffer);
} catch (IOException e) {
Toast.makeText(MainActivity.this,""+e,Toast.LENGTH_LONG).show();
} catch (ClassNotFoundException e) {
Toast.makeText(MainActivity.this,""+e,Toast.LENGTH_LONG).show();
}
}
});
}
我写了一个很糟糕的小图书馆。您可以使用Java套接字 在您的应用程序中运行一个设备
ServerSocket
,此套接字可以侦听连接(如服务器)。你需要检查这个ServerSocket
正在监听哪个端口(谷歌)。您还需要获取该设备的IP地址,几乎没有办法:您可以从WifiManager(谷歌it)获取该地址
其他设备将使用套接字
类连接到它。您可以以多种形式发送数据:纯字符串,或者如果您使用同一个应用程序,则可以序列化/反序列化对象
阅读一些有关套接字的内容,但是在从其他设备连接到
ServerSocket
之后,您可以交换消息(只需在其他线程的某个循环中继续侦听即可)。您需要检查此ServerSocket正在侦听的端口。否。您将自行决定服务器将侦听哪个端口。因此,客户端将使用哪个端口。编写了一些小而糟糕的库来实现这一点。美好的但是它对OP有什么帮助呢?我试过Seversocket和socket,但它互相发送文本,但它没有发送我想分享的图像和视频。胡说八道。您可以使用套接字发送和接收所有这些内容。因此,请编写正确的代码。我发现了我的错误。看起来我的线程工作不正常。感谢@Gudin到手机之间的帮助。
??很抱歉,是“两个”…那么请编辑您的帖子。将此转换为一个。