gpt4 book ai didi

android - 如何在给定 SSID 的情况下通过 wifi 打开套接字

转载 作者:行者123 更新时间:2023-11-29 17:22:51 26 4
gpt4 key购买 nike

我想通过 Wi-Fi 打开连接。我当前的代码是:

WifiConfiguration wifiConfig = new WifiConfiguration();
wifiConfig.SSID = String.format("\"%s\"", "MY_SSID");
wifiConfig.preSharedKey = String.format("\"%s\"", "MY_PASSWORD");

int netId = wifiManager.addNetwork(wifiConfig);
if (netId != -1 ) {
wifiManager.enableNetwork(netId, true);
}

enableNetwork 返回true表示操作成功。我不确定下一步该怎么做。

我的目标是打开一个套接字,我可以在其中通过刚连接到的网络执行自定义 I/O。我怎样才能打开这个网络的套接字?另外,我如何确保我确实连接到网络(是否有我可以设置的 BroadcastReceiver)?

任何链接或文档都会很棒,我不确定要在线搜索什么

最佳答案

您必须在第一台设备上使用您喜欢的任何端口运行服务器,在此示例中我尝试使用 9000:

try {
log("Waiting for client...");

ServerSocket serverSocket = new ServerSocket(9000);
socket = serverSocket.accept();

log("A new client Connected!");
} catch (IOException e) {}

然后在其他设备上的端口 9000 上搜索此服务器。在本例中为:

for (int i = 1; i <= 255; i++) {
String ip = range + i;
try {
log("Try IP: " + ip);
socket = new Socket();
socket.connect(new InetSocketAddress(ip, 9000), 10);

log("Connected!");
return true;
} catch (Exception e) {}
}

如果您有服务器 ip,则不需要循环。对于简单的聊天,我们必须像这样打开输入流和输出流:

try {
outputStream = new DataOutputStream(socket.getOutputStream());
inputStream = new BufferedReader(new InputStreamReader(socket.getInputStream()));
} catch (IOException e1) {
log("Error: Connection is not stable, exit");
shutdown();
}

while (true) {
try {
String message = inputStream.readLine();
if (message != null) {
log(message);
}
} catch (IOException e) {}
}

并发送消息:

try {
String message = input.getText().toString() + "\n";
outputStream.write(message.getBytes());
} catch (IOException e) {
e.printStackTrace();
}

对于文件 I/O 使用相同的方式。

关于android - 如何在给定 SSID 的情况下通过 wifi 打开套接字,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35975017/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com