Skocz do zawartości
  • 👋 Witaj na MPCForum!

    Przeglądasz forum jako gość, co oznacza, że wiele świetnych funkcji jest jeszcze przed Tobą! 😎

    • Pełny dostęp do działów i ukrytych treści
    • Możliwość pisania i odpowiadania w tematach
    • System prywatnych wiadomości
    • Zbieranie reputacji i rozwijanie swojego profilu
    • Członkostwo w jednej z największych społeczności graczy

    👉 Dołączenie zajmie Ci mniej niż minutę – a zyskasz znacznie więcej!

    Zarejestruj się teraz

Android TCP Client C# Server


Rekomendowane odpowiedzi

Opublikowano

Witam.

Mam problem z tym, że jak startuje client na telefonie

to wyskakuje mi "Niestety, aplikacja <Nazwa> została zatrzymana"

 

W consolce wyskakuje mi niby to:

at com.example.xxx.xxxx.ControlActivity.startClient(ControlActivity.java:42)
at com.example.xxx.xxxx.ControlActivity.onCreate(ControlActivity.java:23)
 
U mnie te linijki to:
socket = new Socket("159.205.145.106", 27015);  (ControlActivity.java:42)
startClient();  (ControlActivity.java:23)
 
Cały kod:
Opublikowano

 

 

02-13 09:35:44.959 29640-29640/com.example.xxx.xxxx E/AndroidRuntime: FATAL EXCEPTION: main
                                                                            Process: com.example.xxx.xxxx, PID: 29640
                                                                            java.lang.RuntimeException: Unable to start activity ComponentInfo{com.example.xxx.xxxx/com.example.xxx.xxxx.ControlActivity}: android.os.NetworkOnMainThreadException
                                                                                at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2305)
                                                                                at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2365)
                                                                                at android.app.ActivityThread.access$800(ActivityThread.java:148)
                                                                                at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1283)
                                                                                at android.os.Handler.dispatchMessage(Handler.java:102)
                                                                                at android.os.Looper.loop(Looper.java:135)
                                                                                at android.app.ActivityThread.main(ActivityThread.java:5272)
                                                                                at java.lang.reflect.Method.invoke(Native Method)
                                                                                at java.lang.reflect.Method.invoke(Method.java:372)
                                                                                at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:909)
                                                                                at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:704)
                                                                             Caused by: android.os.NetworkOnMainThreadException
                                                                                at android.os.StrictMode$AndroidBlockGuardPolicy.onNetwork(StrictMode.java:1147)
                                                                                at libcore.io.BlockGuardOs.connect(BlockGuardOs.java:110)
                                                                                at libcore.io.IoBridge.connectErrno(IoBridge.java:137)
                                                                                at libcore.io.IoBridge.connect(IoBridge.java:122)
                                                                                at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:183)
                                                                                at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:163)
                                                                                at java.net.Socket.startupSocket(Socket.java:590)
                                                                                at java.net.Socket.tryAllAddresses(Socket.java:128)
                                                                                at java.net.Socket.<init>(Socket.java:178)
                                                                                at java.net.Socket.<init>(Socket.java:150)
                                                                                at com.example.xxx.xxxx.ControlActivity.startClient(ControlActivity.java:42)
                                                                                at com.example.xxx.xxxx.ControlActivity.onCreate(ControlActivity.java:23)
                                                                                at android.app.Activity.performCreate(Activity.java:5977)
                                                                                at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1105)
                                                                                at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2258)
                                                                                at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2365) 
                                                                                at android.app.ActivityThread.access$800(ActivityThread.java:148) 
                                                                                at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1283) 
                                                                                at android.os.Handler.dispatchMessage(Handler.java:102) 
                                                                                at android.os.Looper.loop(Looper.java:135) 
                                                                                at android.app.ActivityThread.main(ActivityThread.java:5272) 
                                                                                at java.lang.reflect.Method.invoke(Native Method) 
                                                                                at java.lang.reflect.Method.invoke(Method.java:372) 
                                                                                at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:909) 
                                                                                at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:704) 
 

 

 

Opublikowano

Teraz dobrze ?

Mam zmienne ip ale porty odblokowane jakby co.

Nadal nie łączy ..

 

http://screenshot.sh/oAAYSaqCj8agD

 

 

 

public class ControlActivity extends AppCompatActivity {
Socket socket;
PrintWriter pw;

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_control);

thread.start();

final Button button = (Button) findViewById(R.id.button2);
button.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {

}
});

final Button button2 = (Button) findViewById(R.id.button3);
button.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
pw.println("Hello");
pw.flush();
}
});
}

Thread thread = new Thread(new Runnable(){
@Override
public void run() {
try {
socket = new Socket("178.36.194.67", 27015);
pw = new PrintWriter(new BufferedWriter(new OutputStreamWriter(socket.getOutputStream())));
} catch (UnknownHostException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}
});
}

 

 

Opublikowano

Teraz dobrze ?

Mam zmienne ip ale porty odblokowane jakby co.

Nadal nie łączy ..

 

http://screenshot.sh/oAAYSaqCj8agD

 

 

 

public class ControlActivity extends AppCompatActivity {
Socket socket;
PrintWriter pw;

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_control);

thread.start();

final Button button = (Button) findViewById(R.id.button2);
button.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {

}
});

final Button button2 = (Button) findViewById(R.id.button3);
button.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
pw.println("Hello");
pw.flush();
}
});
}

Thread thread = new Thread(new Runnable(){
@Override
public void run() {
try {
socket = new Socket("178.36.194.67", 27015);
pw = new PrintWriter(new BufferedWriter(new OutputStreamWriter(socket.getOutputStream())));
} catch (UnknownHostException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}
});
}

 

 

z tego co wiem Android ma własne klasy od wykonywania asynchronicznych akcji i należy ich używać.

 

Posuzkaj w dokumentacji lub wpisz w google, większość "środowisk" ma swoje metody od tego, bo wtedy może bez problemu kontrolować wątki które tworzysz.

 

a co do samej apki, warto by wtedy podczas łączenia pokazywać że się łączy, a po połączeniu pokazać że się połączyło, tak samo button uzywajacy polaczenia powinien pokazać info jak połączenia nie ma.

1438614356923701010629.png

 

Opublikowano

Nic po prostu nie łączy,

jakby kod zatrzymywał się

w tym miejscu:

socket = new Socket("127.0.0.1", 27015);

debugowałeś? czekałeś? socket po jakimś czasie powinien przynajmniej timeouta wyjebać jak się nie połączy.

1438614356923701010629.png

 

Opublikowano

Debug:

http://pastebin.com/E8BBiL8T

 

Nic .. nadal nie łączy z serverem,

w aplikacji nic się nie dzieje,

cały czas taki sam activity nic

się w nim nie dzieje i nie łączy z serverem.

 

5 min czekałem i nadal nic.

 

Połączyło ale tylko z ipv4

tyle, że jest jakiś error i aplikacje zamyka

 

 

02-14 09:58:41.848 5021-5021/? E/ActivityThread: Service com.uei.control.Service has leaked ServiceConnection com.uei.control.g@dc23892 that was originally bound here
                                                 android.app.ServiceConnectionLeaked: Service com.uei.control.Service has leaked ServiceConnection com.uei.control.g@dc23892 that was originally bound here
                                                     at android.app.LoadedApk$ServiceDispatcher.<init>(LoadedApk.java:1167)
                                                     at android.app.LoadedApk.getServiceDispatcher(LoadedApk.java:1061)
                                                     at android.app.ContextImpl.bindServiceCommon(ContextImpl.java:1839)
                                                     at android.app.ContextImpl.bindService(ContextImpl.java:1822)
                                                     at android.content.ContextWrapper.bindService(ContextWrapper.java:538)
                                                     at com.uei.control.Service.b(Unknown Source)
                                                     at com.uei.control.Service.a(Unknown Source)
                                                     at com.uei.control.Service.onCreate(Unknown Source)
                                                     at android.app.ActivityThread.handleCreateService(ActivityThread.java:2736)
                                                     at android.app.ActivityThread.access$1800(ActivityThread.java:148)
                                                     at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1366)
                                                     at android.os.Handler.dispatchMessage(Handler.java:102)
                                                     at android.os.Looper.loop(Looper.java:135)
                                                     at android.app.ActivityThread.main(ActivityThread.java:5272)
                                                     at java.lang.reflect.Method.invoke(Native Method)
                                                     at java.lang.reflect.Method.invoke(Method.java:372)
                                                     at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:909)
                                                     at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:704)

 

 

 

//Edit

ok normalnie już łączy

Zarchiwizowany

Ten temat przebywa obecnie w archiwum. Dodawanie nowych odpowiedzi zostało zablokowane.

×
×
  • Dodaj nową pozycję...