我一直在試圖獲得我的服務器和手機之間的基本套接字連接。下面的代碼完美地適用於Android模擬器,但是當我在手機上試用時,它失敗了,我不知道爲什麼。我已經嘗試了大部分我可以在SO和Google上找到的建議,但都沒有成功。Android套接字建立連接,但不發送或接收
我的服務器代碼只是一些基本的Ruby: 需要 '插座'
server = TCPServer.new 2000
puts 'Server started!'
loop do
Thread.start(server.accept) do |client|
puts "Received client"
client.write "Connection established."
while text = client.gets
puts text
client.puts text # Just echo the result back...
end
client.close
end
end
而我的客戶端代碼如下: 公共無效的onCreate(捆綁savedInstanceState){ super.onCreate(savedInstanceState); setContentView(R.layout.activity_main);
try{
Socket s = new Socket("***", 2000);
BufferedReader in = new BufferedReader(new InputStreamReader(s.getInputStream()));
PrintWriter out = new PrintWriter(s.getOutputStream());
out.println("test\r\n");
out.flush();
out.close();
}catch(Exception e){
}
}
代碼返回模擬器上的預期的響應:
Server started!
Received client
test
但是,當我在我的手機上運行它,它只返回:
Server started!
Received client
顯然,這是建立連接。我有一些我寫的更深入的代碼,也寫回到服務器,再次,仿真器寫入&接收,但我的手機不,一段時間後,我的手機報告:「連接關閉對等。」
任何想法都會很棒!
編輯:好像我的朋友的手機上運行......所以現在我更爲難......我使用的是索尼的Xperia