繁体   English   中英

使用android和Java套接字连接到服务器并获得用户的必要许可

[英]Connecting to a server using android and Java sockets with needed permission from user

我想使用Java连接到服务器,但问题是似乎没有任何工作。 我知道这个问题已经问了很多次了,但是似乎没有一个问题可以提供解决方案。

我的服务器代码:

//SERVER
ServerSocket serverSocket = new ServerSocket(1234);
Socket s1 = serverSocket.accept();
PrintStream ps = new PrintStream(s1.getOutputStream());
ps.println("text");

我的客户代码:

//CLIENT
Socket s2 = new Socket("localhost", 1234);
BufferedReader br = new BufferedReader
        (new InputStreamReader(s2.getInputStream()));
String input = br.readLine();

我在android清单中添加了权限标签:

<uses-permission android:name="android.permission.INTERNET"/>


我究竟做错了什么。 我对Java套接字并不陌生,但是对android领域却并不陌生。 我是否需要在单独的线程中运行网络代码,或者还有什么可以解决我的问题?


提前致谢


**编辑:**我检查了日志和控制台,没有发现异常。

如果您在android客户端上没有收到任何异常,这意味着您实际上并没有打开套接字,如果确实在UI线程上打开了套接字,则会收到NetworkOnMainThreadException 所以我怀疑您发布的代码根本没有执行。

关于如何在android上进行操作取决于它,如果操作很短,则可以使用AsyncTask 请记住,一个AsyncTask不等于一个Thread ,它们被排队。 如果需要保持连接活动,可以使用线程。 请查看该示例的AsyncTask和另一个 示例的Thread。 他们使用DatagramSocket但想法是一样的

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM