🎄teratailクリスマスプレゼントキャンペーン2024🎄』開催中!

\teratail特別グッズやAmazonギフトカード最大2,000円分が当たる!/

詳細はこちら
C#

C#はマルチパラダイムプログラミング言語の1つで、命令形・宣言型・関数型・ジェネリック型・コンポーネント指向・オブジェクティブ指向のプログラミング開発すべてに対応しています。

Java

Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。

UDP

UDP(User Datagram Protocol)とは、トランスポート層のプロトコルであり、コネクション型のデータサービスです。IPネットワーク上の別のホストにコンピュータのアプリケーションがメッセージを送ることができ、転送チャンネルやデータ経路を設定する必要はありません。TCPに比べて高速であるが、信頼性が薄いという特徴があります。

Android Studio

Android Studioは、 Google社によって開発された、 Androidのネイティブアプリケーション開発に特化した統合開発ツールです。

Q&A

解決済

1回答

991閲覧

AndroidのUDPクライアントについて

kayakumesi

総合スコア14

C#

C#はマルチパラダイムプログラミング言語の1つで、命令形・宣言型・関数型・ジェネリック型・コンポーネント指向・オブジェクティブ指向のプログラミング開発すべてに対応しています。

Java

Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。

UDP

UDP(User Datagram Protocol)とは、トランスポート層のプロトコルであり、コネクション型のデータサービスです。IPネットワーク上の別のホストにコンピュータのアプリケーションがメッセージを送ることができ、転送チャンネルやデータ経路を設定する必要はありません。TCPに比べて高速であるが、信頼性が薄いという特徴があります。

Android Studio

Android Studioは、 Google社によって開発された、 Androidのネイティブアプリケーション開発に特化した統合開発ツールです。

0グッド

0クリップ

投稿2019/09/26 09:53

サーバをC#で作成し、クライアントをAndroidで作成したのですが、サーバに値を送ることが出来ません。
自分のコードが悪いのかわからない状態なので、知識をお借りしたいと思っております。

java

1public class MainActivity extends AppCompatActivity implements SensorEventListener{ 2 3 private SensorManager sensorManager; 4 private TextView X_Data_TextView; //加速度センサXの値 5 private TextView Y_Data_TextView; //加速度センサYの値 6 private TextView Z_Data_TextView; //加速度センサZの値 7 private String Data; 8 private int i = 0; 9 private int j = 0; 10 11 @Override 12 protected void onCreate(Bundle savedInstanceState) { 13 super.onCreate(savedInstanceState); 14 setContentView(R.layout.activity_main); 15 16 sensorManager = (SensorManager)getSystemService(SENSOR_SERVICE); 17 X_Data_TextView = findViewById(R.id.X_Data); 18 Y_Data_TextView = findViewById(R.id.Y_Data); 19 Z_Data_TextView = findViewById(R.id.Z_Data); 20 21 22 23 Button bt = findViewById(R.id.Ran); 24 bt.setOnClickListener(new View.OnClickListener() { 25 @RequiresApi(api = Build.VERSION_CODES.KITKAT) 26 @Override 27 public void onClick(View view) { 28 29 String I = ((EditText)findViewById(R.id.num)).getText().toString(); 30 i = Integer.parseInt((I)); 31 final String address = ((EditText)findViewById(R.id.IP_Address)).getText().toString(); 32 String port = ((EditText)findViewById(R.id.Port)).getText().toString(); 33 int Port = Integer.parseInt(port); 34 35 byte buf[] = new byte[Data.length()]; 36 37 try { 38 buf = Data.getBytes("SHIFT_JIS"); 39 } catch (UnsupportedEncodingException e) { 40 e.printStackTrace(); 41 } 42 43 InetSocketAddress inetSocketAddress = new InetSocketAddress(address,Port); 44 final DatagramPacket datagramPacket = new DatagramPacket(buf,buf.length,inetSocketAddress); 45 46 AsyncTask<DatagramPacket, Void, Void> task = new AsyncTask<DatagramPacket, Void, Void>() { 47 @Override 48 protected Void doInBackground(DatagramPacket... datagramPackets) { 49 DatagramSocket datagramSocket =null; 50 try { 51 datagramSocket = new DatagramSocket(); 52 int j=0; 53 //for(j=i;j<i;j++) { 54 datagramSocket.send(datagramPackets[0]); 55 // } 56 datagramSocket.close(); 57 } catch (SocketException e) { 58 e.printStackTrace(); 59 } catch (IOException e) { 60 e.printStackTrace(); 61 } 62 return null; 63 } 64 }; 65 task.execute(datagramPacket); 66 } 67 }); 68 69 } 70 71 72 73 @Override 74 protected void onResume(){ 75 super.onResume(); 76 //Event Listener登録 77 Sensor accel = sensorManager.getDefaultSensor(Sensor.TYPE_ACCELEROMETER); 78 sensorManager.registerListener((SensorEventListener) this,accel,SensorManager.SENSOR_DELAY_NORMAL); 79 } 80 81 @Override 82 protected void onPause(){ 83 super.onPause(); 84 //Event Listener登録解除 85 sensorManager.unregisterListener((SensorEventListener) this); 86 } 87 88 @Override 89 public void onSensorChanged(SensorEvent event){ 90 if(event.sensor.getType() == Sensor.TYPE_ACCELEROMETER){ 91 X_Data_TextView.setText(String.format("%.3f",500+(event.values[0])*25)); 92 Y_Data_TextView.setText(String.format("%.3f",500+(event.values[1])*25)); 93 Z_Data_TextView.setText(String.format("%.3f",500+(event.values[2]) *25)); 94 Data = (500+event.values[0]*25) + " " + 95 (500+event.values[1]*25) + " " + 96 (500+event.values[2]*25) + " " ; 97 } 98 } 99 100 @Override 101 public void onAccuracyChanged(Sensor sensor, int accuracy){ 102 103 } 104}

C#

1static void Main(string[] args) 2 { 3 //バインドするローカルIPとポート番号 4 string localIpString = "IPアドレス"; 5 System.Net.IPAddress localAddress = 6 System.Net.IPAddress.Parse(localIpString); 7 int localPort = ポート番号; 8 9 //UdpClientを作成し、ローカルエンドポイントにバインドする 10 System.Net.IPEndPoint localEP = 11 new System.Net.IPEndPoint(localAddress, localPort); 12 System.Net.Sockets.UdpClient udp = 13 new System.Net.Sockets.UdpClient(localEP); 14 15 for (;;) 16 { 17 //データを受信する 18 System.Net.IPEndPoint remoteEP = null; 19 byte[] rcvBytes = udp.Receive(ref remoteEP); 20 21 //データを文字列に変換する 22 string rcvMsg = System.Text.Encoding.UTF8.GetString(rcvBytes); 23 24 //受信したデータと送信者の情報を表示する 25 Console.WriteLine("受信したデータ:{0}", rcvMsg); 26 Console.WriteLine("送信元アドレス:{0}/ポート番号:{1}", 27 remoteEP.Address, remoteEP.Port); 28 29 //"exit"を受信したら終了 30 if (rcvMsg.Equals("exit")) 31 { 32 break; 33 } 34 } 35 36 //UdpClientを閉じる 37 udp.Close(); 38 39 Console.WriteLine("終了しました。"); 40 Console.ReadLine(); 41 }

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

jimbe

2019/09/26 17:08

> サーバに値を送ることが出来ません。 何がどうなることで「送ることが出来ない」と判断されるに至ったのでしょうか.
guest

回答1

0

自己解決

ただ単にパーミッションの追加を忘れていただけでした(・ω・)

投稿2019/09/26 17:10

kayakumesi

総合スコア14

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.36%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問