Android app
からまでのデータをTCP
に送信しようとしています。私はのPCからPCまでテストして正常に動作します。しかし、からPCにAndroidを送信しようとすると、Androidが停止しています。 PCソケットとアンドロイドソケットの間に違いはありますか?どのように解決できますか?PC経由でデータをアンドロイドに送信できません
サーバー
byte[] buffer = new byte[1000];
IPAddress ipAddress = IPAddress.Parse("XXX.XXX.XXX.XXX");
IPEndPoint localEndpoint = new IPEndPoint(ipAddress, 8080);
Socket sock = new Socket(ipAddress.AddressFamily, SocketType.Stream, ProtocolType.Tcp);
sock.Bind(localEndpoint);
sock.Listen(5);
Socket confd = sock.Accept();
while (true) {
string data = null;
int b = confd.Receive(buffer);
data += Encoding.ASCII.GetString(buffer, 0, b);
Console.WriteLine("" + data);
}
クライアント
IPAddress ipAddress = IPAddress.Parse("XXX.XXX.XXX.XXX");
IPEndPoint ipEndpoint = new IPEndPoint(ipAddress, 8080);
Socket client = new Socket(ipAddress.AddressFamily, SocketType.Stream, ProtocolType.Tcp);
try {
client.Connect(ipEndpoint);
string message = "What can i send for you?";
byte[] sendmsg = Encoding.ASCII.GetBytes(message);
int n = client.Send(sendmsg);
}
catch (Exception e) {
Toast.MakeText(Application.Context, e.ToString(), ToastLength.Short).Show();
}
ネットワーク通信を扱う際には、まず基本を確認することをお勧めします。ファイアウォールまたはネットワークルーターがブロックされていないことを確認します。別のポートを試してみてください(8080はかなり一般的です)。別のIPアドレスを試してください。クライアントとサーバーでIPアドレスが正しいことを確認してください。あなたはPC - > PCを試してみましたが、これは同じPC上にあったのですか?同じ場合は異なる試してください。 –
私はすべて、まだPC - > PCは動作していますが、Android - > PCはチェックしていません。 – Pareidolia
ほとんどのルータは、Wi-Fiから有線(PC接続)ネットワークへのトラフィックを許可しません。それも動作することを確認してください。 BTW:IPアドレスはローカルアドレス(192.168.x.x/10.x.x.x)である必要があります。マスクする必要はありません。 – Robert