我有两个项目,一个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