サーバを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 }
回答1件
あなたの回答
tips
プレビュー