クライアント「A」がその座標を取得し、PCで実行されているサーバーに送信するtcp/ipアプリケーションがあります。ローカルIPなどを使用しています。これは正常に実行されていましたが、今朝出てきましたが、tp-linkルーターとLANに問題があったため、ルーターを再インストールすると、すべての接続(wi-fi)がバックアップされます。と実行しています。ただし、アプリを実行しようとすると、デバイスで機能しなくなります。
エミュレーターを介して実行すると(テスト用の文字列があります)、サーバーとエミュレーターの両方が同じマシン上にあるためです。私のIPは正しいです、それはサーバーが実行されているマシンのIPです...私は自分自身にこのテクノロジーを教えて大学のためのプロジェクトをしようとしています、そして私はこのような大きな頭痛に直面し続けています。クライアントとサーバーのコードを以下に投稿しましたが、何かアイデアがある人はいますか?ルーターの設定はすべて同じです。これはLAN経由で接続しているだけなので、ポートを転送する必要はありませんか?
クライアントA
import java.io.DataOutputStream;
import java.io.IOException;
import java.io.PrintWriter;
import java.net.Socket;
import java.net.UnknownHostException;
import android.app.Activity;
import android.content.Context;
import android.location.Location;
import android.location.LocationListener;
import android.location.LocationManager;
import android.os.Bundle;
import android.util.Log;
import android.widget.Toast;
public class Child extends Activity implements LocationListener {
private Socket s;
private PrintWriter p;
public static double latitude;
public static double longitude;
String coordinates;
@Override
public void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.child);
LocationManager mlocationManager = (LocationManager) getSystemService(Context.LOCATION_SERVICE);
LocationListener mlocationListener = new MyLocationListener();
mlocationManager.requestLocationUpdates(LocationManager.GPS_PROVIDER, 0, 0,
mlocationListener);
String hello = "hello"; //FOR TESTING PURPOSES
Transmit (hello);
Log.d("test", "test");
}
public class MyLocationListener implements LocationListener {
public void onProviderDisabled(String provider) {
Toast.makeText(getApplicationContext(), "Gps Disabled",
Toast.LENGTH_SHORT).show();
}
public void onProviderEnabled(String provider) {
Toast.makeText(getApplicationContext(), "Gps Enabled",
Toast.LENGTH_SHORT).show();
}
public void onStatusChanged(String provider, int status, Bundle extras) {
}
public void onLocationChanged(Location location) {
// TODO Auto-generated method stub
latitude = location.getLatitude();
longitude = location.getLongitude();
coordinates = ("TESTING " + latitude + longitude);
//Transmit(coordinates);
}
}
private void Transmit(final String message) {
Thread trans = new Thread(new Runnable() {
public void run() {
Log.d("TRANSMIT", "CALLED");
// TODO Auto-generated method stub
try {
s = new Socket("192.168.3.103", 1111); // connect to
// server
Log.d("CONNECTED", "Connected");
DataOutputStream _OutPut = new DataOutputStream(
s.getOutputStream());
_OutPut.writeBytes(message + "\n");
_OutPut.flush();
_OutPut.close();
} catch (UnknownHostException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}
});
trans.start();
}
public void onLocationChanged(Location location) {
// TODO Auto-generated method stub
}
public void onProviderDisabled(String provider) {
// TODO Auto-generated method stub
}
public void onProviderEnabled(String provider) {
// TODO Auto-generated method stub
}
public void onStatusChanged(String provider, int status, Bundle extras) {
// TODO Auto-generated method stub
}
}
サーバ
import java.io.BufferedReader;
import java.io.DataInputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.OutputStream;
import java.io.PrintWriter;
import java.net.ServerSocket;
import java.net.Socket;
import java.util.Scanner;
public class TCPServer {
public static void main(String[] args) throws Exception {
Socket s;
ServerSocket ss = new ServerSocket(1111);
System.out.println("Server started. Listening to the port 2001");
System.out.println("Server: waiting for connection ..");
while (true) {
try {
s = ss.accept();
if (s != null) {
InputStream fromChild = s.getInputStream();
while (s.isConnected()) {
System.out.println("Child Connected");
Scanner r = new Scanner(fromChild);
String location;
location = r.nextLine();
System.out.println(location);
}
}
} catch (IOException ex) {
System.out.println("Problem in message reading");
}
}
}
}
ですから、誰かが状況を助けたり、光を当てたりすることができれば、私はこの問題を解決するまでこれ以上発展することができないので、私は非常に感謝しています。
よろしく、ゲイリー