我有兩個項目,一個Java 服務器和一個統一的客戶端用C#編寫。當我運行java服務器時,統一應用程序已成功連接到Windows。但是,當我嘗試在真正的Android設備上連接時,它無法正常工作。Android使用USB電纜連接到筆記本電腦。無法從Android設備連接到Java服務器
簡單的Java代碼
package main;
import java.io.*;
import java.net.ServerSocket;
import java.net.Socket;
public class Server1 {
private static final int portnumber=6422;
public static void main(String[] args){
ServerSocket serverSocket =null;
try {
System.out.println("Server starts on port"+portnumber);
serverSocket = new ServerSocket(portnumber);
//Client connecting
System.out.println("Waiting for clients to connect");
Socket socket = serverSocket.accept();
System.out.println("A client has connected");
System.out.println("server has ended");
}catch (IOException e){
e.printStackTrace();
}
}
}
客戶端代碼
using UnityEngine;
using System.Net.Sockets;
using System.IO;
using System;
public class Client : MonoBehaviour
{
private bool socketready;
private TcpClient socket;
public void ConnectToServer()
{
//if already connected , ignore this function
if (socketready)
return;
//my laptop private ip address.
string host = "192.168.1.2";
int port = 6422;
//create the socket
try
{
socket = new TcpClient(host, port);
socketready = true;
}
catch (Exception e)
{
print("socket error: " + e.Message);
}
}}
團結我有按鈕(會叫ConnectToServer
)。問題是,當我嘗試點擊該按鈕不能得到「一個客戶已連接「在java控制檯。
在Android工作室它說:「socket error: Connection timed out
」
將'Debug.Log'放入'ConnectToServer'函數以確保它在所有按鈕上被調用。 – Programmer
該代碼適用於Windows – StepHan
好的。我錯過了那部分。 *「Android使用USB電纜連接到筆記本電腦」* ...我認爲這不是很有用。您應該確保Android設備和運行Java服務器的計算機都連接到同一網絡。 – Programmer