Я видел несколько из этих вопросов, но ни один из ответов, похоже, не разрешил мою проблему. Я хочу отобразить сообщение на своем сервере (ПК) у моего клиента (телефон Android, у меня есть физическое устройство ). У меня есть очень простой сервер ПК:Розетки с Android-клиентом и сервером ПК
public void run(int port) throws Exception
{
ServerSocket ss = new ServerSocket(port);
Socket sock = ss.accept();
BufferedReader reader = new BufferedReader(new InputStreamReader(sock.getInputStream()));
System.out.println(reader.readLine());
}
(В моей главной пустоте):
Server s = new Server();
s.run(4444);
И очень простой Android клиента:
package com.j03.client;
import android.app.*;
import android.os.*;
import android.view.*;
import android.widget.*;
import java.io.*;
import java.net.*;
public class MainActivity extends Activity
{
@Override
public void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
try
{
runClient("10.0.2.2", 4444, "hey");
}
catch (Exception e)
{
TextView t = new TextView(this);
t.setText(e.getMessage());
setContentView(t);
}
}
public static void runClient(String ip, int port, String message) throws Exception
{
Socket sock = new Socket(ip, port);
PrintStream ps = new PrintStream(sock.getOutputStream());
ps.println(message);
}
}
Я также надлежащий интернет разрешений в моем файле манифеста:
<uses-permission android:name="android.permission.INTERNET"/>
И клиентский код отлично работает как клиент ПК. (ПК-клиент на ПК-сервер работает отлично).
но я не могу заставить его работать на Android!
ПК-сервер просто ничего не отображает. :(
Кто-нибудь знает, что я могу делать неправильно?
Вы только настройки TextView, когда есть Исключение. Если все работает правильно, вы никогда ничего не показываете на экране. – elevine
W hen 'runClient()' называется, он должен отправить сообщение на сервер. Исключение показывает любые ошибки (которые он сделал, прежде чем я добавил правильные разрешения для моего манифеста). Клиент не должен отображать текст. –
Итак, что именно не работает? Похоже, проблема заключалась в том, что «я просто получаю пустой экран». – elevine