我试图通过wifi-hotspot分享数据我已经搜索过每一个地方但是找不到任何东西..所以有些人有任何想法所以请分享它.. 它应该通过wifi-hotspot而不是wifi-direct ..
//服务器代码
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();
}
}
});
}
答案 0 :(得分:0)
我写了一些小巧糟糕的图书馆。您可以使用Java套接字。
在您的应用中有一台设备运行ServerSocket
,此套接字可以侦听连接(如服务器)。您需要检查此ServerSocket
正在收听的端口(谷歌关于它)。你还需要获得这个设备的IP地址,有几种方法:你可以从WifiManager(google it)获得它。
其他设备将使用Socket
类连接到它。您可以以多种形式发送数据:纯字符串或如果您使用相同的应用程序,则可以序列化/反序列化对象。
阅读一些关于套接字的信息,但是在ServerSocket
从其他设备获得连接后,您可以交换消息(只是继续在其他线程的某个循环中监听)。