我决定用java学习网络编程,从套接字开始。首先,我决定创建一个android聊天客户端,您可以在其中实时聊天,数据通过套接字传输。为了理解这个原理,首先我只是重写了最简单的客户机-服务器连接的代码。但是,当尝试连接到服务器(android设备-客户端,计算机-服务器)时,会引发classnotfoundexception:
I/System.out: [socket]:check permission begin!
W/System: ClassLoader referenced unknown path: system/framework/mediatek-cta.jar
I/System.out: [socket] e:java.lang.ClassNotFoundException: com.mediatek.cta.CtaUtils
我在清单中获得了连接到internet的权限,我在一个单独的线程中创建了一个连接。
客户代码:
try {
InetAddress addr = InetAddress.getByName("26.242.96.221");
Socket socket = new Socket(addr, 8080);
System.out.println("socket = " + socket);
BufferedReader in = new BufferedReader(new InputStreamReader(socket.getInputStream()));
PrintWriter out = new PrintWriter(new BufferedWriter(
new OutputStreamWriter(socket.getOutputStream())), true);
for (int i = 0; i < 10; i++) {
out.println("howdy " + i);
String str = in.readLine();
System.out.println(str);
}
out.println("END");
}catch (Exception e){
e.printStackTrace();
}
服务器代码:
public class Server {
public static final int PORT = 8080;
public static void main(String[] args) throws IOException {
ServerSocket s = new ServerSocket(PORT);
System.out.println("Started: " + s);
try {
Socket socket = s.accept();
try {
System.out.println("Connection accepted: " + socket);
BufferedReader in = new BufferedReader(new InputStreamReader(
socket.getInputStream()));
PrintWriter out = new PrintWriter(new BufferedWriter(
new OutputStreamWriter(socket.getOutputStream())), true);
while (true) {
String str = in.readLine();
if (str.equals("END"))
break;
System.out.println("Echoing: " + str);
out.println(str);
}
}
finally {
System.out.println("closing...");
socket.close();
}
}
finally {
s.close();
}
}
}
我找到了这个答案:
mediatek修补了这些库以添加对http请求的控制。它试图动态加载在/system/framework/mediatek-cta.jar中定义的一些方法,但在您的android设备的文件系统中它可能不存在或不可访问。
因此,我的设备不能与套接字一起工作吗?如果没有,您还可以如何在设备(文本、音乐、在线广播)之间传输数据?如果你能回答我,我将不胜感激
(我用谷歌翻译,对不起我的英语)
1条答案
按热度按时间esbemjvw1#
一切都变得非常简单:事实是,我连接到一台服务器(电脑),它通过wi-fi访问互联网,在我的android设备上使用移动网络,什么都没有发生。但当我把手机连接到wi-fi网络时,一切正常。我怎么知道的
这不是一个错误,而是一个警告,与android上的联发科试图找到一个类有关,但它不在设备的文件系统中。这不会影响工作。如何通过任何连接连接到计算机还有待了解