我已经完成了一个将数据从服务器发送到客户端的应用程序......代码(服务器和客户端)在桌面应用程序中完美运行,但是当我将客户端放在 android 平板电脑上并将服务器放在桌面上时,它不起作用
我正在使用wifi在android和桌面之间进行通信
我设置的权限如下所示
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
<uses-permission android:name="android.permission.WRITE_SETTINGS" />
谁能告诉我这背后的问题是什么.....
我得到了这个例外
java.net.ConnectException: failed to connect to /192.168.1.74 (port 4545): connect failed: ECONNREFUSED (Connection refused)
服务器.java
public class Server
{
private int TAB_SERVER_PORT = 4545;
private static PrintWriter TABout;
private HashSet <PrintWriter> TABhs=new HashSet<PrintWriter>();
public static void main(String args[])
{
new Thread(new TABServerThread()).start();
}
private class TABServerThread implements Runnable {
private ServerSocket TABserver;
@Override
public void run() {
try {
TABserver = new ServerSocket(TAB_SERVER_PORT);
System.out.println("Server Start the server at port " + TAB_SERVER_PORT + " and waiting for clients...");
while (true) {
Socket socket = TABserver.accept();
System.out.println("Server Accept socket connection: "+ socket.getLocalAddress());
new Thread(new TABClientHandler(socket)).start();
}
} catch (IOException e) {
e.printStackTrace();
}
}
}
private class TABClientHandler implements Runnable {
private Socket clientSocket;
private Scanner in;
public TABClientHandler(Socket clietSocket) {
this.clientSocket = clietSocket;
}
@Override
public void run() {
try {
TABout = new PrintWriter(clientSocket.getOutputStream());
TABhs.add(TABout);
in = new Scanner(clientSocket.getInputStream());
String line;
while ((line = in.nextLine()) != null) {
if (line.equals("Reply")){
TABout.print("Server replies");
TABout.flush();
}
}
} catch (IOException e) {
e.printStackTrace();
}
}
}
}
客户端.java
public class Client implements Runnable {
private int TAB_SERVER_PORT = 4545;
private Socket tabletclient;
private PrintWriter tabletout;
private Scanner in;
@Override
public void run() {
String line;
boolean flag=true;
System.out.println("Waiting for server connection....");
while(flag){
try {
tabletclient = new Socket("192.168.1.74", TAB_SERVER_PORT);
tabletout = new PrintWriter(tabletclient.getOutputStream());
in = new Scanner(tabletclient.getInputStream());
try
{
if((line = in.nextLine())!=null)
{
System.out.println("Client Server says: " + line);
if (line.equals("Hello client")) {
tabletout.println("Reply");
tabletout.flush();
}
}
}catch(Exception d){
System.out.println("Connection from server has lost.........");
}
} catch (UnknownHostException e) {
} catch (IOException e) {
}
}
}
public static void main(String[] args) {
new Thread(new Client()).start();
}
}