#java #android #sockets #tcp #can-bus
#java #Android #сокеты #tcp #can-bus
Вопрос:
У меня есть беспроводное устройство PCan, которое может играть роль, которую они назвали «Микро-точкой доступа». Концепция заключается в том, чтобы сделать его маршрутизатором и подключить к нему другие устройства. С помощью этого соединения я могу отправлять / получать CAN-фреймы с использованием TCP или UDP. Основная цель — подключиться к этому Wi-Fi, открыть сокет и отправлять / получать кадры TPC / UPD в Android M.
Я написал действие Android, которое ищет все доступные Wi-Fi и подключается к нему с помощью кнопки, которую я могу успешно подключить.
После подключения я попытался открыть сокет, но это не удалось. Я пробовал это также с разными тайм-аутами:
button2.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
new Thread(new Runnable() {
@Override
public void run() {
for (int i = 0; i <= 255; i) { // I wrote this for loop to check all possibilities!
String ip = "192.168.1." i;
try {
Log.i(TAG, "Try ip: " ip);
Socket socket = new Socket();
socket.connect(new InetSocketAddress(ip, 50000), 100);
Log.e(TAG, "Connected!");
} catch (IOException e) {
Log.e(TAG, "Exception is catched!");
}
}
}
}).start();
}
});
Может кто-нибудь сказать мне, как открыть сокет?
Вот информация об устройстве:
ip: 192.168.1.10
порт: 50000
шлюз: 192.168.1.199
Обновить:
Я не знаю, на правильном ли я пути, чтобы преодолеть эту проблему. Очень коротко сказать: я хочу подключиться к этому беспроводному устройству и отправлять / получать кадры tcp и UPD. К сожалению, у меня очень ограниченные знания о сети.
Комментарии:
1. Это вопрос сокета или вопрос «как подключиться к сети Wi-Fi»? В любом случае, кажется, что есть много нерелевантной информации. Если вы не подключены к сети, способ создания сокета не имеет значения. И если вы НАХОДИТЕСЬ в сети, не имеет значения, является ли это сетью WiFi при создании сокета.
2. @xaxxon Я парень с C , не имеющий опыта работы в сети. Так что, возможно, вопрос неоднозначен. Вопрос в том, как я могу отправлять / получать данные на этом устройстве? Я на правильном пути?
3. Возможно? Но вы действительно задали здесь два вопроса. Один из них «как подключиться к сети Wi-Fi», а другой «как мне создать сокет». Пожалуйста, ограничьте публикацию только одним вопросом (при необходимости вы можете создать еще один пост)
4. Я не знаю, как работает беспроводное устройство PCan, но соединение TCP / IP устанавливается с помощью трехсторонней процедуры рукопожатия. Что вам нужно проверить 1. ваше устройство Android и беспроводное устройство PCan подключены к одной сети. 2. Беспроводное устройство PCan действует как сервер tcp / ip 3. Беспроводное устройство PCan, на каком порту оно прослушивает входящие запросы на подключение. ПРИМЕЧАНИЕ: К беспроводному устройству PCan можно получить доступ через Интернет, тогда первый шаг не требуется, только ваше устройство должно иметь доступ в Интернет.
5. если вы хотите программно подключить свое устройство к какой-либо конкретной сети Wi-Fi, вам следует проверить WifiManager и особенно эти методы 1. addNetwork 2. startScan 3. getScanResults
Ответ №1:
Кажется, что беспроводной маршрутизатор принимает только статические IP-адреса. Использование статического IP и шлюза решило проблему.