在Android上,我试图实现一个简单的TCP Listener Thread (或者从任何地方复制它)。它应该简单地等待一个文本,然后做一些事情。文本已发送,此部分可以工作,但此侦听器线程甚至不能创建用于正确侦听的套接字。
有没有人有什么想法,是不是错了,或者对我来说是另一个简单的方法?文本是由我自己定义的,而不是html。我只找到了太多太复杂的http处理程序。
import java.lang.*;
import java.io.*;
import java.net.*;
public class Client implements Runnable {
public static void main(String args[]) {
System.out.print("Listening Thread started\n");
try {
Socket skt = new Socket("localhost", 2999);
BufferedReader in = new BufferedReader(new
InputStreamReader(skt.getInputStream()));
System.out.print("Received string: '");
while (!in.ready()) {}
System.out.println(in.readLine()); // Read one line and output it
System.out.print("'\n");
in.close();
}
catch(Exception e) {
System.out.print("Whoops! It didn't work!\n");
System.err.println(e);
}
}
public Client () {
}
@Override
public void run() {
// TODO Auto-generated method stub
main(null);
}
}发布于 2011-11-28 23:49:54
您显示的代码用于创建客户端套接字,而不是服务器套接字。参见下面的TCP服务器套接字示例,取自SystemBash。
class TCPServer
{
public static void main(String argv[]) throws Exception
{
String clientSentence;
String capitalizedSentence;
ServerSocket welcomeSocket = new ServerSocket(6789);
while(true)
{
Socket connectionSocket = welcomeSocket.accept();
BufferedReader inFromClient =
new BufferedReader(new InputStreamReader(connectionSocket.getInputStream()));
DataOutputStream outToClient = new DataOutputStream(connectionSocket.getOutputStream());
clientSentence = inFromClient.readLine();
System.out.println("Received: " + clientSentence);
capitalizedSentence = clientSentence.toUpperCase() + '\n';
outToClient.writeBytes(capitalizedSentence);
}
}
}https://stackoverflow.com/questions/8298100
复制相似问题